1.安装准备
建一个目录用于存放各软件包的压缩文件, 如我把我的源码文件都放在了 /software目录下
切换到/software目录下,执行
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.95.tar.gz/from/http://mysql.cdpa.nsysu.edu.tw/ (mysql)
wget http://mirrors.sohu.com/nginx/nginx-1.9.4.tar.gz (nginx)
wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz (php)
wget http://mirrors.sohu.com/apache/httpd-2.4.16.tar.gz (Apache)
用 tar -zxvf 压缩包名 解压相关压缩包
用 yum remove httpd php* 移除已安装的相应包
如果移除不成功则只能rm -rf mysql nginx php zend 的方式来删除安装包
安装相关组件包
yum -y install gcc gcc-c++ libjpeg-devel libpng-devel libtiff-devel fontconfig-devel freetype-devel libXpm-devel gettext-devel openssl-devel libtool-ltdl-devel
2.安装nginx
安装nginx依赖包:yum -y install zlib-devel pcre-devel openssl-devel
预编译
cd nginx-1.9.4
./configure --prefix=/usr/local/nginx # 指定安装目录为/usr/local/nginx
--with-openssl=/usr/include/openssl # 启用ssl
--with-pcre # 启用正规表达式
--with-http_stub_status_module # 安装可以查看nginx状态的模块
(--前面必须留一个空格,否则会报错)
编译和安装
make && make install
启用nginx
/usr/local/nginx/sbin/nginx
可以用以下命令来简化启动路径
cp /usr/local/nginx/sbin/nginx /etc/init.d
(原本是想通过chkconfig命令来设置自启动的,没有成功,有待研究,最后就只有通过vi /etc/rc.d/rc.local 来写入 /etc/init.d/nginx)
查看nginx是否启动 pgrep nginx 或用 ps -A | grep nginx
如果返回有结果就说明nginx已启动
可以在浏览器中输入地址查看
这个页面其实对应的就是/usr/local/nginx/html/index.html这个页面
3.安装mysql
cd mysql-5.0.95 ./configure --prefix=/usr/local/mysql --without-debug --with-extra-charsets=utf8,gbk --enable-assembler --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-unix-socket-path=/tmp/mysql.sock --with-ssl
(--without-debug # 取消调试模式提高性能 --with-extra-charsets=utf8,gbk # 仅仅指定需要的默认字符集提高性能 --enable-assembler # 使用汇编模式提高性能 --with-mysqld-ldflags=-all-static # 以静态方式编译提高性能 --with-client-ldflags=-all-static --with-unix-socket-path=/tmp/mysql.sock # 使用unix socket提高性能) make && make install
安装完成后复制配置文件和启动脚本:
cp support-files/my-medium.cnf /etc/my.cnf # 复制配置文件 cp support-files/mysql.server /etc/init.d/mysqld # 复制启动脚本 chmod +x /etc/init.d/mysqld # 给启动脚本执行权限
(这一步一定要执行,因为mysqld默认没有可执行权限,若不执行则在执行service mysqld start 时会提示这个命令不被允许,或者执行chmod 755 /etc/init.d/mysqld)
为了以后方便我们为所有的二进制可执行文件和动态链接库文件做一个软连接(可不做):
ln -s /usr/local/mysql/bin/* /usr/local/bin/ # 为可执行的二进制文件做软连接 ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/ # 为动态链接库做一个软连接
初始化数据库:
mysql_install_db --user=mysql # 用MySQL用户安装数据库
启动mysql:
方法很多,如
service mysqld start
/etc/init.d/mysqld start
/etc/rc.d/init.d/mysqld start
如若启动失败可查看这篇博客的解决方案http://zhangge.net/4225.html
如我碰到过
是因为在启动mysql之前没对他进行初始化
/usr/local/mysql/bin/mysql_install_db --user=mysql
这个方法解决了
查看是否启动 pgrep mysql 或 netstat -antpl | grep 3306
使用mysql
4.安装php
首先得安装php的几个依赖包
yum -y install libmcrypt mhash mcrypt libxml2-devel curl-devel libpng-devel openldap-devel
如果已经安装就可以不安装了
cd php-5.6.9 ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-zlib --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --enable-fpm --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap --with-iconv=/usr/local/libiconv make && make install
(这个地方编译得小一会儿)
编译时也有可能出错,比如我碰到过如下的错误
主要是因为libiconv依赖没有安装
解决方法 http://lynnteng0.blog.51cto.com/2145094/1257910
也有可能会出现类似的编译错误,根据提示到网上去找解决方案即可,一般都能找到
编译完后就得改一些配置了
cp /software/php-5.6.9/php.ini-production /usr/local/php/php.ini # 如果是开发就复制php.ini-development
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
配置php-fpm,编辑php-fpm.conf
vi /usr/local/php/etc/php-fpm.conf
找到listen那一行,修改成如下内容:
listen = /var/run/php-fpm/php-fpm.sock # 使用unix socket(原本是没有这个php-fpm.sock的,等启动php-fpm之后就有了)
启动php-fpm
mkdir /var/run/php-fpm /usr/local/php/sbin/php-fpm (启动php-fpm)
然后配置nginx,编辑nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
修改的地方 :
@1.修改用户和开启日志功能(www用户得自己建一个,日志功能强烈建议开启)
@2.修改根目录并制定可被解析的脚本格式
@3.修改通信协议
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
@4.更改php-fpm的配置文件
vim /usr/local/php/etc/php-fpm.conf
修改
listen.owner = www
listen.group = www
listen.mode = 0660
将这个文件的user和group指定为www用户
修改完后保存退出 然后重启nginx (关闭pkill -9 nignx 启动/usr/local/nginx/sbin/nginx)和php-fpm (/usr/local/php/sbin/php-fpm)
(当然配置中的用户和群组以及代码跟路径可根据自己喜好做相应变化)
5.写php代码 用于验证
在/home/www/test目录下创建index.php (test目录下及所包含的文件的权限是777 chmod –R 777 test)
<? php
echo phpinfo()
?>
在地址栏中运行localhost若出现如下页面就说明一切ok了
如果没有出现也没啥着急的看看错误日志呗
vim /usr/local/nginx/logs/error.log
比如这是我的一次错误日志 ,主要是/var/run/php-fpm/php-fpm.sock 没有可执行的权限,用chmod命令赋予可执行权限即可(无需再次启动php-fpm和nginx,如果改了相关配置的话就需要重启这两个软件)