美文网首页云时空
CentOS7安装部署LAMP、WordPress和FTP

CentOS7安装部署LAMP、WordPress和FTP

作者: Taeyeon37 | 来源:发表于2017-09-01 23:02 被阅读0次

    安装配置LAMP环境,即Linux+Apache+MySQL+PHP+phpmyadmin。LNMP分别代表 Linux、Nginx、MySQL、PHP。大同小异。

    基本知识准备

    • 查询是否已安装对应软件: $ rpm -q <software> or yum info <software>
    • 软件安装后,服务是否启动:systemctl命令(system Control)
    systemctl status <software>[.service]    //查看service状态
    systemctl start <software>[.service]     //启动service
    systemctl enable <software>[.service]    //开机启动service
    systemctl stop <software>[.service]      //停止service
    systemctl restart <software>[.service]   //重启service
    

    .service不加,系统也会在env PATH中根据 software name 调用正确的service。

    安装Apache

    yum -y install httpd    //-y(yes)静默安装
    

    安装成功后,执行command

    systemctl status httpd    //Apache service激活状态默认是inactive (dead)
    systemctl start httpd
    systemctl enable httpd
    systemctl status httpd    //启动后再查看Active: active (running)
    

    然后在浏览器输入服务器公网IP或localhost(本机),就应该能看到Apache HTTP server的test页面了。


    test-apache.png

    Exception异常处理

    以阿里云为例,如果出现服务器配置启动Apache后无法访问,使用本机去ping公网ip还可以ping通的case,是因为访问Apache服务被拦截了。可能是这两个原因导致的:

    • 阿里云ECS实例的安全组规则没有设置对应的端口权限。进入云服务器-实例-管理-本实例安全组-配置规则-添加安全组规则,在入方向添加80端口,授权对象0.0.0.0/0指所有请求。
      secure-rule.png

    这里也顺便加上几个通用的端口,以防后面的操作出现访问请求被拦截的情况。


    secure-group.png
    • 系统中的防火墙在运行状态,并未开放相应的端口。
    systemctl status firewalld    //如果防火墙是inactive (dead)未激活状态,就不会拦截任何端口,也可以保持这个状态
    

    如果防火墙是active (running)运行状态,在防火墙中开放80端口,将 http 服务加入防火墙以允许外部访问

    firewall-cmd --add-service=http --permanent    //–permanent参数表示这是一条永久防火墙规则,如果不加则重启系统后就没有这条规则了
    

    对于自定义的端口(如81),也需要添加防火墙规则

    firewall-cmd --zone=public --add-port=81/tcp --permanent
    

    重启 Firewalld 使该规则生效

    systemctl restart firewalld
    

    关闭SELINUX,vim /etc/selinux/config,注释掉如下两句,添加最后一项

    #SELINUX=enforcing #注释掉
    #SELINUXTYPE=targeted #注释掉
    SELINUX=disabled #增加
    

    :wq! 保存退出

    setenforce 0 #使配置立即生效
    

    安装MariaDB (MySQL的一个开源分支)

    yum -y install mariadb mariadb-server
    

    MariaDB安装成功后,启动MariaDB

    systemctl start mariadb     //启动MariaDB
    systemctl enable mariadb    //设置开机启动
    

    设置MySQL root账户密码

    mysql_secure_installation
    

    因是刚安装好,root密码未设置,看到下面这行直接回车即可,输Y开始设置root密码

    Enter current password for root (enter for none):
    Set root password? [Y/n]

    提示输入新密码和重复输入新密码,重复输入两次后,出现更新密码成功提示,然后一路输入y/Y就可以。

    New password:
    Re-enter new password:
    Password updated successfully!

    Remove anonymous users? [Y/n] Y
    Disallow root login remotely? [Y/n] Y
    Remove test database and access to it? [Y/n] Y
    Reload privilege tables now? [Y/n] Y
    Thanks for using MariaDB!

    设置root密码后,重启MariaDB生效

    systemctl restart mariadb
    

    测试访问数据库:

    mysql -uroot -p
    

    然后输入密码,登录成功后显示如下:

    Welcome to the MariaDB monitor. Commands end with ; or \g.
    Your MariaDB connection id is 2
    Server version: 5.5.52-MariaDB MariaDB Server

    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    MariaDB [(none)]>

    查看数据库服务器的数据库

    show databases;
    

    最后输入exit;退出数据库

    安装PHP以及PHP拓展

    yum -y install php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash
    

    安装完成后,重启Apache服务器

    systemctl restart httpd
    

    在/www/html/目录新增index文件(查看Apache相关的配置在/etc/httpd/conf/httpd.conf里),测试PHP安装结果

    vim /var/www/html/index.php    // /www/html/为Apache服务器默认项目部署根路径
    

    i insert输入如下内容,Esc退出编辑,:wq保存退出。

    <?php
      phpinfo();
    ?>
    

    在浏览器中输入服务器地址,查看是否可以看到:


    php-welcome.png

    安装phpMyAdmin

    yum -y install phpmyadmin php-mcrypt
    

    phpMyAdmin 的默认安装目录是 /usr/share/phpMyAdmin,同时会在 Apache 的配置文件目录中自动创建虚拟主机配置文件 /etc/httpd/conf.d/phpMyAdmin.conf(区分大小写)。默认情况下,CentOS 7上的phpMyAdmin只允许从回环地址(127.0.0.1)访问。为了能远程连接,需要改动它的配置。

    vim /etc/httpd/conf.d/phpMyAdmin.conf
    
    <Directory /usr/share/phpMyAdmin/>
       AddDefaultCharset UTF-8
    
       <IfModule mod_authz_core.c>
         # Apache 2.4
         <RequireAny>
          # Require ip 127.0.0.1    #注释掉
          # Require ip ::1          #注释掉
            Require all granted     #新添加
         </RequireAny>
       </IfModule>
       <IfModule !mod_authz_core.c>
         # Apache 2.2
         Order Deny,Allow
         Deny from All
         Allow from 127.0.0.1
         Allow from ::1
       </IfModule>
    </Directory>
    
    <Directory /usr/share/phpMyAdmin/setup/>
       <IfModule mod_authz_core.c>
         # Apache 2.4
         <RequireAny>
          # Require ip 127.0.0.1    #注释掉
          # Require ip ::1          #注释掉
            Require all granted     #新添加
         </RequireAny>
       </IfModule>
       <IfModule !mod_authz_core.c>
         # Apache 2.2
         Order Deny,Allow
         Deny from All
         Allow from 127.0.0.1
         Allow from ::1
       </IfModule>
    </Directory>
    
    

    重启Apache服务器,systemctl restart httpd
    然后通过浏览器访问http://服务器ip地址/phpmyadmin

    phpMyAdmin.png

    参考链接

    安装WordPress

    如果你刚好打算以WordPress作为博客服务器,这个module刚好适合你。

    通过命令下载WordPress,切换到任意目录下,一般源文件放在/usr/local/src,个人安装软件在/usr/local

    cd /usr/local/src
    wget https://wordpress.org/latest.tar.gz    //English version,目前最新版是4.8.1
    wget https://cn.wordpress.org/wordpress-4.8.1-zh_CN.tar.gz    //简体中文(zh-Hans)
    

    或者你先下载到本机,再通过FTP把压缩包上传到Linux 实例中。

    在Apache项目部署跟目录解压缩wordpress

    cd /var/www/html
    tar -zxvf /usr/local/src/latest.tar.gz(wordpress-4.8.1.tar.gz/wordpress-4.8.1-zh_CN.tar.gz)
    

    这样就把WordPress安装在网站子目录,而不是网站的根目录,方便网站的维护。这样文件内容就放在/var/www/html/wordpress/目录下,而不是/var/www/html/下。(建议这样做)

    在浏览器输入'服务器实例公网IP/wordpress',如59.110.137.229/wordpress/,进入到 WordPress 的安装页面


    wordpress.png

    根据首页提示信息,进入数据库(通过Graphic或command),创建一个名为wordpress的数据库名

    CREATE DATABASE wordpress;
    SHOW DATABASES;
    EXIT;
    

    然后开始,配置数据库信息,单击 提交。


    config.png

    数据库主机填localhost即可,我之前以为是填写服务器实例的公网IP,导致会出现下图错误。


    config-error.png localhost.png

    如果出现下图错误,很有可能是文件权限不够。

    privilege.png
    $ cd /var/www/html
    $ ll -a    #查看解压后wordpress文件夹的权限
    drwxr-xr-x 5 nobody 65534 4096 Aug 30 23:24 wordpress    #权限不足
    $ chmod 777 -R wordpress    #权限
    $ chown root:root -R wordpress    #属组
    

    修改权限,让文件可读可写可执行。

    最后进入欢迎页面,填写你的个人信息,site、username、password、Email等。

    通过主域名访问安装在子目录的WP

    为了方便管理,把wordpress安装在子目录/var/www/html/subdirectory而不是网站根目录下/var/www/html,并且可以通过domain.com不是通过domain.com/subdirectory访问站点首页。首先确认你的WP内容是放在subdirectory目录下(e.g. wordpress文件夹)。

    • Method I (Without URL change)。在根目录下创建.htaccess文件夹,并把以下内容放进去,仅修改example.commy_subdir,替换成你自己的公网IP(如59.110.137.229)或域名(如guodongdong.com.cn)和子目录(如worpress)
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www.)?example.com$
    RewriteCond %{REQUEST_URI} !^/my_subdir/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /my_subdir/$1
    RewriteCond %{HTTP_HOST} ^(www.)?example.com$
    RewriteRule ^(/)?$ my_subdir/index.php [L] 
    </IfModule>
    

    That's all :) just so so

    • Method II (With URL change)。
    1. 进入WP后台仪表盘Dashboard-设置Setting-常规General-
      设置WordPress address (URL)为http://IP address/wordpresshttp://(www).domain.com/wordpress
      设置Site address (URL)为http://IP addresshttp://(www).domain.com
      保存更改。
    2. index.php.htaccess两个文件从wordpress子目录复制(不要移动)到根目录
    cp .htaccess index.php ..
    cd ..    #返回目录
    
    1. 编辑index.php文件,vim index.php
    require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );    #添加子目录名称/wordpress
    
    1. 如果你设置了固定链接Permalinks,点击保存更改更新你的Permalink结构。WordPress会自动更新你的.htaccess文件。

    最后通过你的公网IP或域名就可以直接访问博客主页了。WP官方配置链接。如果还是不行,建议把方法一和二 一起走一遍就可以了。

    安装FTP

    通过WP在线安装主题或更新插件时,WP会通过FTP协议获取访问网页服务器的权限。Entry

    解决安装主题或更新插件时提示'未能找到WordPress内容目录(wp-content)'

    在wp-config配置文件中添加如下内容(以我的根目录为'wordpress'为例):

    define('FTP_BASE', 'wordpress');    #FTP_BASE:你的wordpress的安装的根目录
    define('FTP_CONTENT_DIR', 'wordpress/wp-content');    #FTP_CONTENT_DIR:你的wordpress的内容目录
    define('FTP_PLUGIN_DIR', 'wordpress/wp-content/plugins/');    #FTP_PLUGIN_DIR:你的wordpress的插件目录
    define('FTP_THEMES_DIR', 'wordpress/wp-content/themes/');    #FTP_THEMES_DIR:你的wordpress的主题目录
    define('FS_METHOD', 'direct');    #FS_METHOD:你的安装方法
    

    保存修改,重新安装主题或更新插件,SUCCESS! 参考链接
    WordPress官网寻找自己喜欢的主题和合适的插件吧。

    离线下载安装主题

    不喜欢在线的主题或在线不能下载主题,把下载的主题或插件放在/wordpress/wp-content/themes|plugins下,进入个人站点控制台启用即可。

    相关文章

      网友评论

        本文标题:CentOS7安装部署LAMP、WordPress和FTP

        本文链接:https://www.haomeiwen.com/subject/ugqljxtx.html