从入门到瞎搞:CentOS 7搭建LNMP环境和基于Ghost的博客

文章目录

谨以此文记录自己在CentOS 7上搭建LNMP环境和Ghost博客平台过程中从入门到瞎搞的过程(逃

详细的相关信息:

  • LNMP:
    • CentOS 7.2 x64
    • Nginx 1.10.2
    • MySQL 5.6.35
    • PHP 7.0.15
  • Ghost:
    • Node.js 6.9.4
    • Ghost 0.11.4

!!!以下操作均在root权限下完成

1. 搭建LNMP环境

1.1. 安装

在终端输入:

$ vim Installs.sh

进入Vim后 按 i 键进入文本插入模式 把以下内容复制粘贴(Windows 下可复制文本后在 PuTTY 窗口右键单击)写入文件 Installs.sh

yum install -y epel-release  
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm  
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm  
rpm -Uvh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm  
yum install -y php70w  
yum install -y php70w-mysql php70w-xml php70w-soap php70w-xmlrpc  
yum install -y php70w-mbstring php70w-json php70w-gd php70w-mcrypt  
yum install -y nginx  
yum install -y mysql-server  
yum install -y php70w-fpm  

输入完成后按 Esc 返回命令模式,之后输入 :wq 保存文件并退出编辑

接下来运行这个sh脚本:

$ sh Installs.sh

等待安装完成即可

P.S. MySQL 的最后两个包好像……会比较慢……看自己选的是哪里的镜像吧。我没换源总共安装了将近一个小时……我能怎么办?我也很绝望啊!

1.2. 启动服务

在终端输入:

$ vim Services.sh

用同样的方式把以下命令写入文件 Services.sh

systemctl start nginx.service  
systemctl start php-fpm.service  
systemctl start mysqld.service  
mysql_secure_installation  
systemctl restart mysqld.service  
systemctl enable mysqld.service  
systemctl enable nginx.service  
systemctl enable php-fpm.service  

保存并退出

接下来运行这个 sh 脚本以启动相关的服务:

$ sh Services.sh

注意前面的 service 启动没有提示,所以屏幕会暂时无输出。 中间的那个 mysql_secure_installation 是设置 MySQL 数据库的,需要输入管理员密码以及进行其他设置,一般来说设置完密码后一路回车(也就是默认 Yes)即可。

这个时候可以在系统本地访问 http://localhost,或者用任意设备访问服务器 IP 地址,可以看到 Nginx 的默认欢迎页面。

1.3. 修改 Nginx 配置文件使其能正常解析 PHP

在 Nginx 的工作目录(默认是 /usr/share/nginx/html)下创建测试用的 PHP 文件:

$ vim /usr/share/nginx/html/test.php

输入以下内容用作测试:

<?php  
    echo"Hello World!\n";
?>

保存退出
这个时候如果访问 Server_IP(xxx.xxx.xxx.xxx)/test.php,会发现网页还是按照文件内容原样显示或者浏览器会直接把这个文件下载下来,也就是说 PHP 文件并没有被正确解析。

我们需要修改 Nginx 的配置文件使网页显示出 PHP 运行的结果而不是文本内容

进入 Nginx 默认配置文件所在文件夹:

$ cd /etc/nginx/

备份一份默认的配置文件以防改得太乱想要恢复默认配置重新瞎搞:

$ cp nginx.conf nginx.conf.bak

接下来修改配置:

$ vim nginx.conf

首先把 server_name 后面的短横线改成自己服务器的IP地址:

server_name  xxx.xxx.xxx.xxx; #Modify to your IP  

然后在

location / {  
    #xxx
}

这一段的下面添加以下内容(不需要修改):

location ~ .php$ {  
    try_files $uri =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

重启服务:

$ systemctl restart nginx.service php-fpm.service

P.S. 如果你看到了

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

一般来说是因为刚刚的 nginx.conf 有错误,检查一下有没有漏掉行末的分号、大括号是不是正好匹配有没有缺少之类的然后改正就可以了

接下来检查配置是否成功:

$ curl localhost/test.php

如果返回的是

Hello World!

而不是之前的文本全文

<?php  
    echo"Hello World!\n";
?>

那么 PHP 的配置就算完成了,LNMP 环境到这里也已经搭建好了。

搭建Ghost Blog

进入当前用户文件夹:

$ cd ~

写入脚本:

$ vim GhostBlog.sh
curl -sL https://rpm.nodesource.com/setup | bash -  
yum install -y nodejs  
cd /usr/share/nginx/html  
wget https://ghost.org/zip/ghost-latest.zip  
unzip -d ghost ghost-latest.zip  
cd ghost  
npm install --production  
npm install pm2 -g  
NODE_ENV=production pm2 start index.js --name "ghost"  
pm2 startup centos  
pm2 save  
cd ~  

运行:

$ sh GhostBlog.sh

(挖坑待填,未完待……续?