首先声明环境是CentOS 7.5 64位
安装顺序为nginx,php,mysql
登录账号为root
第一步安装nginx
安装make
yum -y install gcc automake autoconf libtool make
安装c++编译器
yum -y install gcc gcc-c++
安装pcre,为了重写rewrite
#进入目录
cd /usr/local/src/
#下载pcre-8.42包
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
#解压
tar zxvf pcre-8.42.tar.gz
# 进入解压包
cd /usr/local/src/pcre-8.42
#预编译
./configure
#编译
make
# 安装
sudo make install
安装zlib库,为了gzip压缩
#进入目录
cd /usr/local/src/
#获取资源包
wget http://zlib.net/zlib-1.2.11.tar.gz
#解压
tar zxvf zlib-1.2.11.tar.gz
# 进入目录
cd /usr/local/src/zlib-1.2.11/
#预编译
./configure
#编译
make
#安装
sudo make install
安装openssl
#进入目录
cd /usr/local/src/
#获取资源
wget https://www.openssl.org/source/openssl-1.0.2q.tar.gz
#解压
tar zxvf openssl-1.0.2q.tar.gz
#进入目录
cd /usr/local/src/openssl-1.0.2q/
#预编译
./config
#编译
make
#安装
sudo make install
安装nginx
cd /usr/local/src/
#获取资源包
wget http://nginx.org/download/nginx-1.14.1.tar.gz
#解压
tar zxvf nginx-1.14.1.tar.gz
cd /usr/local/src/nginx-1.14.1/
#预编译
./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/usr/local/src/pcre-8.42 \
--with-zlib=/usr/local/src/zlib-1.2.11 \
--with-openssl=/usr/local/src/openssl-1.0.2q
#编译
make
#安装
sudo make install
启动nginx
/usr/local/nginx/nginx
查看80端口是否开启
netstat -ano |grep 80
验证是否成功
curl -I 127.0.0.1
结果如下:
[root@VM_0_15_centos local]# curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Fri, 30 Nov 2018 04:08:33 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Fri, 30 Nov 2018 04:00:46 GMT
Connection: keep-alive
ETag: "5c00b5ee-264"
Accept-Ranges: bytes
第二步安装php
安装依赖
yum -y install libmcrypt-devel mhash-devel libxslt-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
krb5 krb5-devel libidn libidn-devel openssl openssl-devel
安装php
cd /usr/local/src/
wget http://cn.php.net/distributions/php-7.2.12.tar.gz
tar zxvf php-7.2.12.tar.gz
cd /usr/local/src/php-7.2.12/
#预编译
./configure --prefix=/usr/local/php \
--enable-fpm \
--enable-mbstring\
--enable-pdo \
--with-curl \
--disable-debug \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-pdo-mysql \
--with-mysqli \
--with-gd \
--with-jpeg-dir \
--with-freetype-dir \
--enable-calendar \
--with-pdo-mysql \
--enable-opcache
#编译
make
#安装
sudo make install
测试php
/usr/local/php/bin/php -v
结果如下
[root@VM_0_15_centos php-7.2.12]# /usr/local/php/bin/php -v
PHP 7.2.12 (cli) (built: Nov 30 2018 13:00:02) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
第三步完善php
配置php.ini
#确定php.ini的设置位置
/usr/local/php/bin/php -i |grep Configuration
#结果如下:
[root@VM_0_15_centos php-7.2.12]# /usr/local/php/bin/php -i |grep Configuration
Configuration File (php.ini) Path => /usr/local/php/lib
Loaded Configuration File => (none)
Configuration
#拷贝php源码的php.ini示例文件到php运行加载位置
cp /usr/local/src/php-7.2.12/php.ini-development /usr/local/php/lib/php.ini
#编辑php.ini
vim /usr/local/php/lib/php.ini
#设置
cgi.fix_pathinfo=0
配置php-fpm
cp /usr/local/src/php-7.2.12/sapi/fpm/php-fpm /usr/local/bin
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
#创建www用户组
groupadd www
#增加www用户
useradd -g www www
#编辑添加www用户
vim /usr/local/php/etc/php-fpm.d/www.conf
#找到如下位置,更改为www
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www
group = www
#停止php-fpm
killall php-fpm
#启动php-fpm
php-fpm
#查看
netstat -lntup | grep 9000
第四步配置nginx解析php
vim /usr/local/nginx/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
#测试配置是否正常
/usr/local/nginx/nginx -t
#重启nginx
/usr/local/nginx/nginx -s reload
#编辑测试php文件
cd /usr/local/nginx/html/
vim index.php
<?php echo "hello word";
curl -I 127.0.0.1
#测试结果
[root@VM_0_15_centos html]# curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Fri, 30 Nov 2018 06:54:38 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.2.12
第五步安装mysql
cd /usr/local/src/
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
rpm -ivh ./mysql80-community-release-el7-1.noarch.rpm
service mysqld start
vim /etc/my.cnf
[mysqld]
skip-grant-tables
default_authentication_plugin=mysql_native_password
#重启mysql
#登录mysql
#刷新权限
flush privileges;
#创建账号
CREATE USER 'user'@'%' IDENTIFIED BY '你的密码';
#运行远程登录
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
flush privileges;
#再注释掉skip-grant-tables 重启mysql
systemctl stop mysqld
systemctl start mysqld
网友评论