环境
rhel6.5
编译
- 1.得到包并解压
[root@server1 ~]#tar jxf php-5.6.35.tar.bz2
[root@server1 ~]#cd php-5.6.35
- 2.安装依赖包
[root@server1 ~]#yum install -y gcc gcc-c++ bison libxml2 libxml2-devel libcurl libcurl-devel libjpeg-turbo-devel libpng-devel freetype-devel gmp-devel net-snmp-devel
[root@server1 ~]#yum install -y libmcrypt-*(libmcrypt-devel-2.5.8-9.el6.x86_64.rpm与libmcrypt-2.5.8-9.el6.x86_64.rpm)
- 3.编译
[root@server1 ~]#cd php-5.6.35
[root@server1 php-5.6.35]# ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --without-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash
- 4.安装
[root@server1]# make && make install
php配置
-
1.创建nginx用户
[root@server1 ~]# useradd nginx -
2.复制配置文件到模版到配置文件中
[root@server1 ~]#cd /usr/local/lnmp/php/etc
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server1 ~]#cd ~/php-5.6.35
[root@server1 php-5.6.35]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
- 3.编译配置文件,去掉pid的注释
[root@server1 etc]# vim /usr/local/lnmp/php/etc/php.ini
-
4.将php的启动脚本复制到系统的启动目录下并添加可执行权限
[root@server1 php-5.6.35]# pwd /root/php-5.6.35 [root@server1 php-5.6.35]#cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@server1 php-5.6.35]#chmod +x /etc/init.d/php-fpm
-
5.开启服务并查看php端口,默认为9000
[root@server1 php-5.6.35]# /etc/init.d/php-fpm start
nginx安装
[root@server1 ~]# tar zxf nginx-1.16.0.tar.gz
[root@server1 nginx-1.16.0]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx
[root@server1 nginx-1.16.0]# make && make install
[root@server1 nginx-1.16.0]# vim /usr/local/lnmp/nginx/conf/nginx.conf
[root@server1 nginx-1.16.0]# vim /usr/local/lnmp/nginx/html/index.php
[root@server1 nginx-1.16.0]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin
[root@server1 nginx-1.16.0]# nginx -t
[root@server1 nginx-1.16.0]# nginx -s reload
在网页中测试:
mysql的安装
- 安装cmake
- cmake用来编译mysql源码,设置mysql的编译参数
[root@server1 ~]# tar zxf mysql-boost-5.7.17.tar.gz
[root@server1 ~]# yum install cmake-2.8.12.2-4.el6.x86_64.rpm
-
依赖安装
[root@server1 ~]# yum install -y ncurses-devel gcc gcc-c++ bison
-
编译
[root@server1 ~]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/
-DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql ##指定安装路径
-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data ##指定数据库中数据存放路径
-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock ## 链接数据库中的socket文件
-DWITH_MYISAM_STORAGE_ENGINE=1 ##安装MYISAM的存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DDEFAULT_CHARSET=utf8 ##使用utf-8字符编码
-DDEFAULT_COLLATION=utf8_general_ci ##校验字符
-DEXTRA_CHARSETS=all##安装所有的扩展字符集
-DWITH_BOOST=boost/boost_1_59_0/##
若编译失败需要再次编译时,需要先删除之前编译的缓存文件CMakeCache.txt
- 编译成功后安装
[root@server1 mysql-5.7.17]# make && make install
mysql配置文件的修改
- 复制mysql的启动脚本至系统启动服务脚本的默认目录去
[root@server1 mysql-5.7.17]# cd support-files/ ##
[root@server1 support-files]# cp mysql.server /etc/init.d/mysqld
[root@server1 mysql]# chmod +x /etc/init.d/mysqld
- 进入mysql的源码编译目录对器配置文件作备份缤纷复制一份至/etc/my.cnf下并进行配置
[root@server1 support-files]# cp /etc/my.cnf /etc/my.cnf.bak##备份配置文件
[root@server1 support-files]# cp my-default.cnf /etc/my.cnf#复制配置文件至/etc/my.cnf下
cp: overwrite `/etc/my.cnf’? y
[root@server1 support-files]# vim /etc/my.cnf##编辑配置文件
- 添加用户mysql对mysql服务进行限制
[root@server1 support-files]# groupadd -g 27 mysql
[root@server1 support-files]# useradd -u 27 -g 27 mysql
[root@server1 support-files]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)
- 创建目录data并修改data目录拥有者为mysql,mysql目录组为mysql
[root@server1 support-files]# cd /usr/local/lnmp/mysql
[root@server1 mysql]# mkdir data
[root@server1 mysql]# chgrp mysql /usr/local/lnmp/mysql -R
[root@server1 mysql]# chown mysql data -R
- 将编译生成的mysql二进制命令放入系统的环境变量中方便调用
[root@server1 mysql]# vim ~/.bash_profile
[root@server1 mysql]# source ~/.bash_profile
- mysql初始化配置文件
[root@server1 mysql]# mysqld --user=mysql --initialize##执行mysql初始化配置文件
“root@localhost“后的 qL<YYg(kp2sS 为初始密码
初始化时若失败,则先删除data目录下的文件重新生成即可
- 开启数据库并登陆查看
[root@server1 mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to ‘/usr/local/lnmp/mysql/data/server1.err’.
[ OK ]
[root@server1 mysql]# mysql -uroot -p##密码为初始化时生成的密码
Enter password:
- mysql的安全初始化
[root@server1 mysql]# mysql_secure_installation
修改密码,移除匿名用户等操作 - 再次使用新密码登陆数据库