Linux+nginx+mysql+php
编译 nginx
1: 下载 http://nginx.org/en/download.html
选择 stable 版本下载
2: 解压
# tar zxf nginx.xxxx.tar.gz
3: 配置
#./configure --prefix=/usr/local/nginx
如果提示缺少 pcre 库,
则从 http://www.pcre.org/
假设解压在/usr/local/src/pcre-source 假设安装在/usr/local//pcre
4: 再次配置
1.6.X 版本,要求指定 pcre 的源码目录,即: #./configure --prefix=/usr/local/nginx
–with-pcre=/usr/local/src/pcre-source
之前的版本, 指定 pcre 的安装目录,即: #./configure --prefix=/usr/local/nginx
–with-pcre=/usr/local/pcre
5: make && make install
6: 启动 nginx
./sbin/nginx
7: 启动时,极易出现端口被占的错误,如下
这是因为 80 端口已被 apache 或其他 webserver 占据, 可以用 ps 命令来查找可以进程,然后杀掉.
Pkill -9 进程名如 pkill -9 httpd
或 kill 进程号
8: 连接,从局域网内连接 nginx,
如果连接不能,先 ping 测试,2 台机器之间网络是否通,
再在服务器上 telnet localhost 80
如果 2 者都能,但外界连不上 80 端口,则是防火墙的原因.
service iptables stop
再次连接,出现以下界面,则安装成功
编译安装 PHP
#yum install gd zlib libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel
解压,cd 到 php-5.x
# ./configure --prefix=/usr/local/php \
--with-gd \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-mysql=mysqlnd \
--enable-mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-fpm
--with openssl
--enable-fpm 是让 PHP 作为独立的进程来运行(默认占据 9000 端口)
如果是和 apache 配合,PHP 一般是作为 apache 的模块来使用
# cd /usr/local/php
# cp etc/php-fpm.conf.default etc/php-fpm.conf
#cp /usr/local/src/php-5.5.13/php.ini-development ./lib/php.ini
#./sbin/php-fpm
整合 nginx 和 PHP
Vim /path/to/nginx.conf
根据实际情况修改,例:
也可以如下方式:
让 nginx 的最新配置文件生效
# ./sbin/nginx -s reload
再次请求 xx.php,看到如下类似效果,即整合成功
编 译 MySQL
http://ftp.nchu.edu.tw/Unix/Database/MySQL/Downloads/MySQL-5.5/
mysql-5.5.30-linux2.6-x86_64.tar.gz
MySQL 的安装稍复杂一些(主要是编译后的配置及初始化),大家注意,碰到开源软件
1:官网的安装介绍
2: 下载源码后,一般有 README/INSTALL
3: ./configure --help
我们可以下载 2 进制版本来安装:
官方示例:
shell> groupadd mysql
shell> useradd -r -g mysql mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql # 安装初始化数据
shell> chown -R root .
shell> chown -R mysql data
具体安装流程:
# groupadd mysql
[root@bogon mysql5.5]# useradd -g mysql mysql
[root@bogon mysql5.5]# cd /usr/local/mysql5.5/
#chown -R mysql .
# chgrp -R mysql
.
# ./scripts/mysql_install_db --user=mysql
如果提示如下错误:
/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
则
# yum install libaioso.1 libaio
然后再次执行
# chown -R root .
# chown -R mysql data # mkdir /var/run/mysqld
# chown mysql /var/run/mysqld
# chgrp mysql /var/run/mysqld
# ./bin/mysqld_safe --user=mysql &
mysql 连接
Mysqld 安装后,连接经常出现找不到 sock 的情况
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
我们用 2 个办法来解决
1: 建立软件链接
#ln /var/lib/mysql/mysql.sock /tmp/mysql.sock
2: 查看 mysql --help
Mysql -S /path/to/mysql.sock
mysql 修改密码
Mysql 用户的密码,存储在一个系统库里的—mysql
注意: mysql 用户权限检测,检测 Host,User,Password
mysql> update user set Password=password('123456') where Host='localhost' and User='root';
mysql> delete from user where Password='';
mysql> flush privileges;