LNMP 安装指北
LNMP 环境安装指南,为了构建合适的 Typecho 博客运行环境
系统环境
CentOS 7.5
安装 Nginx
- 在Centos下,yum源不提供nginx的安装,可以通过切换yum源的方法获取安装。也可以通过直接下载安装包的方法,以下命令均需root权限执行:
- 首先安装必要的库(nginx 中gzip模块需要 zlib 库,rewrite模块需要 pcre 库,ssl 功能需要openssl库)。选定 /usr/local 为安装目录,以下具体版本号根据实际改变。
安装 gcc gcc-c++(如新环境,未安装请先安装)
yum install -y gcc gcc-c++
安装 PCRE 库
cd /
mkdir service
cd /service
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz
tar -zxvf pcre-8.33.tar.gz
cd pcre-8.33
./configure
make && make install
安装SSL库
cd /service
wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
tar -zxvf openssl-1.0.1j.tar.gz
cd openssl-1.0.1j
./config
make && make install
安装 zlib 库存
cd /service
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure
make && make install
安装 nginx
cd /service
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --user=nobody --group=nobody --prefix=/service/nginx --with-pcre=/service/pcre-8.33 --with-zlib=/service/zlib-1.2.11 --with-openssl=/service/openssl-1.0.1j --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module
// --with-http_ssl_module:这个不加后面在nginx.conf配置ssl:on后,启动会报nginx: [emerg] unknown directive "ssl" in /opt/nginx/conf/nginx.conf 异常)
// --prefix 后面的几个分别对应着刚刚安装的库的源码位置
MySQL 安装请参照文章 LAMP 环境的搭建
PHP 安装
进入 PHP 官网 点击 Download ,选择一个合适的版本,建议选择个低于 7.2 版本的,高版本的时候安装会报错,本人是感觉玩不转。。。
因为 php 安装需要编译,所以服务器应该保证 gcc 和 g++ 环境的安装,将下载下来的包上传至服务器
yum -y install gcc gcc-c++
tar -zxvf php-7.1.26.tar.gz
cd php-7.1.26
接下来进行参数配置,配置前如果没有libxml2和libxml2-devel会报错,所以应该更新libxml2并安装libxml2-devel,使用在线安装:
yum -y install libxml2
yum -y install libxml2-devel
补充,因为不同的操作系统环境,系统安装开发环境包的完整程度也不相同,所以建议安装操作系统的时候做必要选择,也可以统一执行一遍所有的命令,将没有安装的组件安装好,如果已经安装了可能会进行升级,版本完全一致则不会进行任何操作,命令除上面2个之外,汇总如下:
yum -y install openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel
以上这些包基本上够用了,如果发现问题再补充,安装完成之后,执行配置:
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip
make && make install
// 配置相应的文件
cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
然后设置 php.ini ,使用: vim /usr/local/php/lib/php.ini 打开 php 配置文件找到 cgi.fix_pathinfo 配置项,这一项默认被注释并且值为 1 ,根据官方文档的说明,这里为了当文件不存在时,阻止 Nginx 将请求发送到后端的 PHP-FPM 模块,从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为 0
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0
设置完毕保存并退出,创建web用户:
groupadd www-data
useradd -g www-data www-data
默认情况下etc/php-fpm.d/下有一个名为www.conf.defalut的配置用户的文件,执行下面命令复制一个新文件并且打开:
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
vim /usr/local/php/etc/php-fpm.d/www.conf
// 文件中
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www-data
group = www-data
安装 php 的 mysql 扩展,去 官网 下载,然后上传到服务器上
tar xzvf mysql-45881bd.tar.gz
cd mysql-45881bd/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=mysqlnd
make && make install
在php.ini中添加mysql扩展,在php.ini文件的最后添加一行:
vim /usr/local/php/lib/php.ini
extension = mysql.so // 文件最后一行添加
ps aux|grep php-fpm // 查看 php-fpm 的 aster 进程号,第二列就是
kill -USR2 10593 // 重启 php-fpm
安装 Typecho
Typecho 是一款非常简洁的博客系统,之前也有用过 wordpress ,着实是有点臃肿,对于一个简单的博客来说,我不需要那么多花里胡哨的东西,然后就发现了现在这一款,简单易用
下载
cd /service/nginx/html
mkdir blog
cd blog
wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar -zxvf 1.1-17.10.30-release.tar.gz
rm -rf 1.1-17.10.30-release.tar.gz