如何编译搭建php7+nginx+mysql
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何编译搭建php7+nginx+mysql相关的知识,希望对你有一定的参考价值。
参考技术A 在Windows下配置搭建PHP环境的步骤:一、准备工作-下载所需软件
Apache httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
PHP php-5.3.10-Win32-VC9-x86.zip
MySQL mysql-5.5.20-win32.msi
二、安装软件
1、安装Apache: 双击安装,与安装其他Windows软件没有什么区别,在填Server Infomation时,并没有特殊规定,只要输入的信息符合格式即可。
安装完成之后,在浏览器输入http://localhost,如果显示It Works!,表示Apache安装成功。
2、安装PHP:将php-5.3.10-Win32-VC9-x86.zip解压到一个目录即可。
3、安装MySQL:双击安装,如果需要更改安装目录,则在Choose Setup Type选择Custom
安装完成后开始配置MySQL,全部保持默认选项即可,但最好把MySQL默认编码改为utf8,在Modify Security Settings选项中设置密码,输入两次密码即可完成,最后点Execute完成配置。
三、整合Apache+PHP+MySQL
Apache : 首先修改Apache的配置文件,让Apache支持解析PHP文件。Apache配置文件在Apache安装目录的conf目录下的httpd.conf。
1. 让Apache可以解析php文件,在配置文件中找到
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
在下一行添加 (绿色的位置是根据PHP的所在目录而定的)
LoadModule php5_module "D:/Develop/PHP/php5apache2_2.dll" PHPIniDir "D:/Develop/PHP" AddType application/x-httpd-php .php .html .htm
2. 在配置文件中找到
DirectoryIndex index.html
改为
DirectoryIndex index.php index.html
3. 修改Apache站点目录,在配置文件中找到(Apache安装的目录不同,显示的值不一样)
DocumentRoot "D:/Develop/Apache2.2/htdocs"
改为
DocumentRoot "D:/Workspace/PHP"
再找到
<Directory "D:/Develop/Apache2.2/htdocs">
改为
<Directory "D:/Workspace/PHP">
PHP : 把php.ini-development改名为php.ini,作为PHP的配置文件。修改php.ini
1. 设置PHP扩展包的具体目录,找到
; On windows: ; extension_dir = "ext"
改为 (值是ext文件夹的目录)
; On windows: extension_dir = "D:/Develop/PHP/ext"
2. 开启相应的库功能,找到需要开启的库的所在行
;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_xmlrpc.dll
去掉前面的分号(注释),即改为
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_xmlrpc.dll
3. 设置时区,找到
;date.timezone =
改为
date.timezone = Asia/Shanghai
配置完成,检测一下配置是否成功。重启Apache,在站点目录下新建文件index.php,输入内容。
基于CentOS 6.8平台最新源代码包编译安装LNMP环境搭建(Nginx+MySQL+PHP)
部署环境
系统:CentOS 6.8 x86_64
Nginx:1.11.3
MySQL:5.7.14
PHP:7.0.10
pcre:8.39
zlib:1.2.8
openssl:1.0.1t
freetype:2.6.5
libmcrypt:2.5.8
boost:1.59.0
cmake:3.6.1
部署准备
使用客户机浏览器访问freetype官网 https://www.freetype.org/ 下载页面选取一个下载地址
下载目前最新发行版本,右击-复制下载链接。
在CentOS服务系统切换到/usr/src目录下使用wget工具贴入下载刚刚复制的链接
cd /usr/src
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.6.5.tar.gz
访问mcrypt官网 http://mcrypt.sourceforge.net/ 选择一个下载站点
查看所有文件
选择目录libmcrypt
2.5.8版本
选择一个包下载
访问openssl官网 https://www.openssl.org/ 下载页面
这里选择下载1.0.1t版本
访问pcre官网 http://www.pcre.org/ 选取一个下载站点
下载最新发行版本
访问zlib官网 http://www.zlib.net/ 拉到最下面选取一个下载站点
复制完整下载地址进行下载
访问boost官网 http://www.boost.org/ 选择1.59.0版本
选择Linux平台下的软件包
获取下载地址进行下载
访问cmake官网 https://cmake.org/ 下载页面
下载最新发行版
访问Nginx官网 http://nginx.org/ 下载目前最新发行版
复制完整下载地址进行下载
访问MySQL官网 https://www.mysql.com/ 下载页面
下载免费社区版
前往下载页面
平台类型:源代码包
tar包下载
不登陆下载
获取完整下载地址后到下载到CentOS系统
访问PHP官网 http://www.php.net/ 下载页面选择最新版
最近站点下载
获取完整下载地址下载
所有软件包
部署过程
使用yum安装所需的系统软件包
yum install -y gcc gcc-c++ ncurses ncurses-devel libxml2 libxml2-devel curl-devel libpng libpng-devel
安装Nginx
解压pcre与zlib压缩包
tar zxf pcre-8.39.tar.gz
tar zxf zlib-1.2.8.tar.gz
tar zxf openssl-1.1.0.tar.gz
解压nginx压缩包配置
tar zxf nginx-1.11.3.tar.gz
cd nginx-1.11.3
./configure --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/run/nginx.pid --user=nginx --group=nginx --with-http_gunzip_module --with-http_gzip_static_module --with-http_ssl_module --with-zlib=/usr/src/zlib-1.2.8 --with-pcre=/usr/src/pcre-8.39 --with-openssl=/usr/src/openssl-1.0.1t
编译安装
make && make install
创建Nginx用户,分配权限。
useradd -M -s /sbin/nologin nginx
chown -R nginx.nginx /usr/local/nginx/
启动NGINX服务
/usr/local/nginx/sbin/nginx
创建开机自启动脚本 /etc/init.d/nginx 内容如下:
#! /bin/sh
#
#
# chkconfig: 2345 66 34
# description: A very fast and reliable nginx engine
#
#
#
BASEDIR=/usr/local/nginx
DAEMON=$BASEDIR/sbin/nginx
PIDFILE=$BASEDIR/run/nginx.pid
set -e
if [ ! -x "$DAEMON" ];then
echo "nginx deamon not exist"
exit 1
fi
if [ ! "$1" ];then
echo "Usage: {start|stop|reload|restart}"
exit 2
fi
_start() {
$DAEMON
}
_stop() {
$DAEMON -s stop
}
_reload() {
$DAEMON -s reload
}
case "$1" in
start)
_start
echo -e "Starting Nginx: [ \e[0;32mOK\e[0m ]"
;;
stop)
_stop
echo -e "Stoping Nginx: [ \e[0;32mOK\e[0m ]"
;;
reload|graceful)
_reload
echo -e "Reloading Nginx: [ \e[0;32mOK\e[0m ]"
;;
restart)
_stop
echo -e "Stoping Nginx: [ \e[0;32mOK\e[0m ]"
_start
echo -e "Starting Nginx: [ \e[0;32mOK\e[0m ]"
esac
exit 0
添加执行权限
chmod 755 /etc/init.d/nginx
添加到chkconfig服务管理
chkconfig --add nginx
测试脚本运行情况
安装MySQL
切换回/usr/src目录安装boost
cd /usr/src/
tar jxf boost_1_59_0.tar.bz2
cd boost_1_59_0
./bootstrap.sh
编译
./b2
./b2 install --prefix=/usr/local/boost
切换回/usr/src目录安装cmake
tar zxf cmake-3.6.1.tar.gz
cd cmake-3.6.1
./configure --prefix=/usr/local/cmake
编译安装
MySQL数据库
cd /usr/src/
tar zxf mysql-5.7.14.tar.gz
cd mysql-5.7.14
/usr/local/cmake/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/usr/local/mysql/etc -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_BOOST=/usr/local/boost/include
编译安装
make && make install
创建有关目录
mkdir -p /usr/local/mysql/etc
mkdir -p /usr/local/mysql/data
mkdir -p /usr/local/mysql/log
mkdir -p /usr/local/mysql/run
删除 /etc/my.cnf 配置文件,新建 /usr/local/mysql/etc/my.cnf 文件
rm -f /etc/my.cnf
cat > /usr/local/mysql/etc/my.cnf << EOF
[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/run/mysqld.pid
EOF
useradd -M -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
初始化数据库,注意最后一行提示会给出临时登录密码。
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
/usr/local/mysql/bin/mysqld_safe &
使用生成的临时密码登录MySQL数据库
/usr/local/mysql/bin/mysql -u root -p
修改数据库登录密码为 [email protected]
alter user ‘root‘@‘localhost‘ identified by ‘[email protected]‘;
创建MySQL服务启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
mysqld_pid_file_path=/usr/local/mysql/run/mysqld.pid
添加至chkconfig服务管理
chkconfig --add mysql
安装PHP
切换回/usr/src目录安装freetype
tar jxf freetype-2.6.5.tar.bz2
cd freetype-2.6.5
./configure --prefix=/usr/local/freetype
编译安装
make && make install
切换回/usr/src目录安装libmcrypt
tar zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt
编译安装
make && make install
安装openssl
cd /usr/src/openssl-1.0.1t
./config --prefix=/usr/local/openssl
编译安装
make && make install
切换回/usr/src目录安装php
tar php-7.0.10.tar.gz
cd php-7.0.10
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt=/usr/local/libmcrypt/ --with-freetype-dir=/usr/local/freetype/ --with-openssl=/usr/local/openssl/ --enable-gd-native-ttf --with-gd --with-iconv --with-zlib --enable-xml --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-sockets --enable-zip --enable-soap --with-gettext --enable-session --with-curl --enable-opcache
编译安装
make && make install
创建配置文件
cp php.ini-production /usr/local/php/etc/php.ini
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
创建php-fpm开机启动脚本
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
编辑/etc/init.d/php-fpm文件加入参数控制启动顺序,放在Nginx服务后启动。
# chkconfig: 2345 67 33
添加至chkconfig服务管理
chkconfig --add php-fpm
编辑Nginx配置文件 /usr/local/nginx/conf/nginx.conf 添加php索引
取消php解析模块部分注释,修改脚本文件路径。
创建php测试文件
rm -f /usr/local/nginx/html/*
cat > /usr/local/nginx/html/index.php << EOF
<?php
phpinfo();
?>
EOF
重启Nginx服务与php-fpm服务,关闭系统防火墙与selinux服务。
service nginx restart
/etc/init.d/php-fpm start
/etc/init.d/iptables stop
chkconfig iptables off
setenforce 0
浏览器访问CentOS服务器地址,随后显示php测试页面详细信息。
注意:为了使PHP站点支持更多的扩展功能,以上安装了许多支持的第三方模块,请根据实际环境需求选择安装!
本文出自 “服务器系统交流” 博客,请务必保留此出处http://1130739.blog.51cto.com/1120739/1846025
以上是关于如何编译搭建php7+nginx+mysql的主要内容,如果未能解决你的问题,请参考以下文章
Centos系列编译安装php7+nginx1.12及搭建自己的wordpress博客
debian系统安装最新lnmp编译最新php7.1.2及nginx1.10.3及mysql5.7及5.6