本文介绍在CentOS7.2.1511下编译安装Nginx1.10.1+MySQL5.7.14+PHP7.0.11的完整过程。
系统要求- CentOS7.2.1511系统
- 安装gcc、gcc-c++、make、openssl-devel、zlib-devel、pcre-devel、libxml2-devel、bison、libjpeg-devel、libpng-devel、freetype-devel等开发工具和依赖库
- 下载源码包
执行以下命令,下载Nginx1.10.1源码包
wget http://nginx.org/download/nginx-1.10.1.tar.gz
- 解压源码包
执行以下命令,解压nginx-1.10.1.tar.gz包
tar zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
- 配置参数
执行以下命令,配置nginx的参数
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_sub_module --with-http_gzip_static_module --with-pcre --with-http_stub_status_module
- 编译安装
执行以下命令,编译并安装nginx
make && make install
- 启动nginx
执行以下命令,启动nginx
/usr/local/nginx/sbin/nginx
至此,nginx安装完成,可以通过浏览器访问服务器IP,验证nginx是否安装成功。
编译安装MySQL- 下载源码包
执行以下命令,下载MySQL5.7.14源码包
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.14.tar.gz
- 解压源码包
执行以下命令,解压mysql-5.7.14.tar.gz包
tar zxvf mysql-5.7.14.tar.gz
cd mysql-5.7.14
- 配置参数
执行以下命令,使用cmake进行配置
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_BOOST=boost
- 编译安装
执行以下命令,编译并安装mysql
make && make install
- 初始化数据
执行以下命令,初始化mysql数据
cd /usr/local/mysql
mkdir data
chown -R mysql:mysql data
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
- 启动MySQL
执行以下命令,启动mysql
cd /usr/local/mysql
bin/mysqld_safe --user=mysql &
至此,mysql安装完成,可以通过mysql客户端连接mysql服务器,验证mysql是否安装成功。
编译安装PHP- 下载源码包
执行以下命令,下载PHP7.0.11源码包
wget https://www.php.net/distributions/php-7.0.11.tar.gz
- 解压源码包
执行以下命令,解压php-7.0.11.tar.gz包
tar zxvf php-7.0.11.tar.gz
cd php-7.0.11
- 配置参数
执行以下命令,配置php的参数
./configure --prefix=/usr/local/php --with-fpm-user=www --with-fpm-group=www --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-fpm --enable-mbstring --enable-mysqlnd --with-openssl --with-zlib --enable-opcache --enable-bcmath --enable-soap --enable-zip
- 编译安装
执行以下命令,编译并安装php
make && make install
- 配置php-fpm
执行以下命令,将php-fpm添加到系统服务
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
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
- 启动php-fpm
执行以下命令,启动php-fpm
/etc/init.d/php-fpm start
- 测试
新建一个index.php文件,包含以下内容:
“`php
“`
将该文件放到nginx的root目录下,通过浏览器访问该文件,即可进行php的验证。
示例1:创建一个简单的动态网站- 创建MySQL数据库及数据表
执行以下命令,使用mysql客户端连接mysql服务器
mysql -uroot -p
创建一个名为test的数据库
CREATE DATABASE test;
创建一个名为userinfo的数据表
CREATE TABLE userinfo (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20), age INT, email VARCHAR(50));
- 创建一个简单的php文件
新建一个create.php文件,包含以下内容:
“`php
prepare(“INSERT INTO userinfo(name, age, email) VALUES(?, ?, ?)”);
$stmt->bind_param(‘sis’, $name, $age, $email);
$stmt->execute();
echo “添加成功”;
?>
“`
该文件用于向数据库test中的userinfo表中添加一条数据。
- 修改nginx配置文件
打开nginx的配置文件,通常位于/usr/local/nginx/conf/nginx.conf,添加以下内容:
“`
server {
listen 80;
server_name localhost;
location / {
root /usr/local/nginx/html;
index index.php index.html index.htm;
}
location /create.php {
root /usr/local/nginx/html;
index index.php index.html index.htm;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/create.php;
include fastcgi_params;
}
}
“`
该配置文件用于将请求create.php的请求交给php-fpm处理。
- 重启nginx和php-fpm
执行以下命令,重启nginx和php-fpm
/usr/local/nginx/sbin/nginx -s reload
/etc/init.d/php-fpm restart
- 测试
新建一个register.html文件,包含以下内容:
“`html
“`
将该文件放到nginx的root目录下,通过浏览器访问该文件,即可看到一个用户注册表单。填写完表单并提交后,数据库中的userinfo表中会添加一条数据。
示例2:使用PHP连接Memcache服务器- 安装libevent和Memcached
执行以下命令,安装libevent和Memcached
yum install libevent-dev
wget https://memcached.org/files/memcached-1.5.19.tar.gz
tar zxvf memcached-1.5.19.tar.gz
cd memcached-1.5.19
./configure --prefix=/usr/local/memcached
make && make install
- 安装Memcached扩展
执行以下命令,下载memcached扩展源码
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
执行以下命令,安装php的依赖库
yum install cyrus-sasl-devel
执行以下命令,编译并安装memcached扩展
./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached-1.0.18 --disable-memcached-sasl
make && make install
- 修改php.ini文件
打开php.ini,通常位于/usr/local/php/etc/php.ini,添加以下内容:
extension=memcached.so
- 修改php代码
新建一个memcache.php文件,包含以下内容:
“`php
addServer(‘127.0.0.1’, 11211);
$key = ‘testkey’;
$value = ‘testvalue’;
$memcache->set($key, $value);
$get_value = $memcache->get($key);
echo $get_value;
?>
“`
- 将该文件放到nginx的root目录下,通过浏览器访问该文件,即可进行Memcached的验证。