CentOS7安装部署LAMP、WordPress和FTP

安装配置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下,进入个人站点控制台启用即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容