linux nginx+apache+php+mysql 安装配置
2011-10-23 18:11
986 查看
CentOS-5.6-i386操作系统
nginx-1.1.6.tar.gz
httpd-2.2.21.tar.gz
mysql-5.1.44.tar.gz
php-5.3.8.tar.gz
1. lsb_release -a 查看系统环境
2. 查找是否已经安装过环境
3. 解压缩
4. 安装PHP所需的软件包
所有的软件包可以到http://code.google.com/p/myphp-appstore/downloads/list 下载
4.1 安装libiconv(iconv函数需要用到)
4.2 安装jpegsrc(magejpeg需要用到)
4.3 安装libpng包(支持PNG)
4.4 安装freetype
4.5 安装gettext(gd所需)
4.6 安装gd
4.7 安装libssh(可能ssh连接用到)
4.8 安装libmcrypt(加密算法扩展库 例如 DES
3DES)
4.9 安装mhash(哈希函数库 例如 MD5 SHA CRC 等)
4.10 建立软链接
4.11 安装 mcrypt(加密算法扩展库)
5 安装MySQL
创建MySQL数据库,用默认的配置my.cnf
添加MySQL启动服务,并且设置root密码
6 安装Apache
解决办法:cd /usr/local/apache/conf, 用记事本打开httpd.conf, 将里面的#ServerName localhost:80注释去掉即可。
用浏览器查看 http://127.0.0.1或http://localhost, 得到it works,说明apache已经配置成功了.
7 安装PHP
8 安装PHP扩展模块
8.1 memcache 客户端
8.2 PDO_MySQL
8.3 安装eaccelerator (PHP加速器)
9 修改PHP.INI 文件
查找/usr/local/php/etc/php.ini中的extension_dir = "./"
修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
并在此行后增加以下几行
extension = "memcache.so"
extension = "pdo_mysql.so"
保存。
10 配置eAccelerator加速
PHP创建缓存目录
mkdir -p /usr/local/eaccelerator_cache
在php.ini文件最后面添加下面几行内容就可以了
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
11 重新配置apache2让他支持php
在LoadModule php5_module modules/libphp5.so
添加AddType application/x-httpd-php .php
OK,基本的安装已经完成.
重新起动APACHE:
# /usr/local/apache2/bin/apachectl graceful ---记得每次修改php.ini配置或httpd.conf 配置都要重启Apache
12 Apache配置httpd-vhosts虚拟主机
12.1 修改httpd.conf 文件
(a) 添加如下两行(假设当前是基于同一IP的两个端口)
Listen 8080
Listen 8081
(b) 注释以下内容
#ServerAdmin you@example.com
#DocumentRoot "/usr/local/apache2/htdocs"
#<Directory "/usr/local/apache2/htdocs">
(c) 修改Directory模块内容(相当是全局的,以后httpd-vhosts.conf也会用到这个设置)
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all (将 Deny 改成 Allow)
</Directory>
(c) 找到如下模块
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
去掉前面的#,这样就开启了httpd-vhosts虚拟主机文件。
12.2 修改httpd-vhosts文件
NameVirtualHost *:8080
NameVirtualHost *:8081
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:8080>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/home/www/htdocs/8080"
ServerName test.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "/home/www/logs/8080-error.log"
CustomLog "/home/www/logs/8080-access.log" common
</VirtualHost>
<VirtualHost *:8081>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/home/www/htdocs/8081"
ServerName test2.example.com
ErrorLog "/home/www/logs/8081-error.log"
CustomLog "/home/www/logs/8081-access.log" common
</VirtualHost>
13 查看配置是否正确并重启apache
/usr/local/apache2/bin/apachectl -S --检查配置文件的语法
或者
前一种方法不会中断当前的客户端连接,后一种方法则会中断当前客户端的连接
如果配置没有什么问题,到此就可以http://127.0.0.1:8080和http://127.0.0.1:80801 访问虚拟机的web页面了。
接下来要做的事情就是通过nginx 反向代理php请求
14 安装nginx所需软件包
15 安装nginx
16 nginx做负载均衡(实现动静分离),其详细配置如下:
17 启动nginx 进程
ulimit -SHn 65535
/usr/local/nginx/sbin/nginx
18 配置开机自启动
echo "ulimit -SHn 65535" >>/etc/rc.local
echo "/usr/local/apache2/bin/apachectl -k start" >>/etc/rc.local
echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local
到这里工作已经全部完成!
nginx-1.1.6.tar.gz
httpd-2.2.21.tar.gz
mysql-5.1.44.tar.gz
php-5.3.8.tar.gz
1. lsb_release -a 查看系统环境
LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 5.6 (Final) Release: 5.6 Codename: Final
2. 查找是否已经安装过环境
[root@localhost www]# rpm -qa|grep httpd [root@localhost www]# rpm -qa|grep mysqld [root@localhost www]# rpm -qa|grep php [root@localhost www]# rpm -qa|grep apache 如果找到 删除 (--nodeps 是强制删除的意思) [root@localhost ~]# rpm -qa|grep httpd httpd-2.2.3-31.el5.centos [root@localhost ~]# rpm -e --nodeps httpd
3. 解压缩
[root@localhost www]# tar -zxf nginx-1.1.6.tar.gz [root@localhost www]# tar -zxf httpd-2.2.21.tar.gz [root@localhost www]# tar -zxf mysql-5.1.44.tar.gz [root@localhost www]# tar -zxf php-5.3.8.tar.gz
4. 安装PHP所需的软件包
所有的软件包可以到http://code.google.com/p/myphp-appstore/downloads/list 下载
4.1 安装libiconv(iconv函数需要用到)
# tar zxvf libiconv-1.13.1.tar.gz # cd libiconv-1.13.1/ # ./configure --prefix=/usr/local # make # make install # cd ../
4.2 安装jpegsrc(magejpeg需要用到)
# tar zxvf jpegsrc.v6b.tar.gz # cd jpeg-6b/ # ./configure –-enable-static –-enable-shared # make # make install # make install-lib # cd ../
4.3 安装libpng包(支持PNG)
# cd /root/Software/ # tar -zvxf libpng-1.5.4.tar.gz # cd libpng-1.5.4 # ./configure --prefix=/usr/local/libpng # make # make install
4.4 安装freetype
# cd /root/Software/ # tar -zvxf freetype-2.4.6.tar.gz # cd freetype-2.4.6 # mkdir -p /usr/local/freetype # ./configure --prefix=/usr/local/freetype # make # make install
4.5 安装gettext(gd所需)
# tar zxvf gettext-0.17.tar.gz # cd gettext-0.17 # ./configure # make # make install
4.6 安装gd
# tar zxf gd-2.0.35.tar.gz # cd gd # cd 2.0.35/ # ./configure --enable-m4_pattern_allow # make # make install cd ../
4.7 安装libssh(可能ssh连接用到)
# tar zxf libssh2-0.12.tar.gz # cd libssh2-0.12/ # ./configure # make # make install
4.8 安装libmcrypt(加密算法扩展库 例如 DES
3DES)
# tar zxvf libmcrypt-2.5.8.tar.gz # cd libmcrypt-2.5.8/ # ./configure # make # make install # /sbin/ldconfig # cd libltdl/ # ./configure --enable-ltdl-install # make # make install # cd ../../
4.9 安装mhash(哈希函数库 例如 MD5 SHA CRC 等)
# tar zxvf mhash-0.9.9.9.tar.gz # cd mhash-0.9.9.9/ # ./configure # make # make install # cd ../
4.10 建立软链接
# ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la # ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so # ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 # ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 # ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a # ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la # ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so # ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 # ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 # ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
4.11 安装 mcrypt(加密算法扩展库)
# /sbin/ldconfig # tar zxvf mcrypt-2.6.8.tar.gz # cd mcrypt-2.6.8/ # ./configure # make # make install # cd ../
5 安装MySQL
# cd mysql-5.1.44 # ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile # make && make install
创建MySQL数据库,用默认的配置my.cnf
# groupadd mysql # useradd -g mysql mysql # cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf # /usr/local/mysql/bin/mysql_install_db --user=mysql # chown -R mysql /usr/local/mysql/var # chgrp -R mysql /usr/local/mysql/
添加MySQL启动服务,并且设置root密码
# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql # chmod 755 /etc/init.d/mysql # chkconfig --level 345 mysql on # echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf # echo "/usr/local/lib" >>/etc/ld.so.conf # ldconfig # ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql # ln -s /usr/local/mysql/include/mysql /usr/include/mysql # service mysql start # /usr/local/mysql/bin/mysqladmin -u root password root //root改为你需要的密码 # service mysql restart
6 安装Apache
# cd httpd-2.2.21 # ./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-rewrite # make && make install
# /usr/local/apache2/bin/apachectl start //启动apahce错误:httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
解决办法:cd /usr/local/apache/conf, 用记事本打开httpd.conf, 将里面的#ServerName localhost:80注释去掉即可。
用浏览器查看 http://127.0.0.1或http://localhost, 得到it works,说明apache已经配置成功了.
7 安装PHP
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir=/usr/local/libpng --with-zlib --with-libxml-dir=/usr --enable-xml --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-soap --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-ftp # make ZEND_EXTRA_LIBS='-liconv' (必须要加,要不然PHP编译出错) # make install # cp php.ini-development /usr/local/php/etc/php.ini (好象PHP5.3开始就没有php.ini-dist文件了,可以是php.ini-development或php.ini-production) # cd ../
8 安装PHP扩展模块
8.1 memcache 客户端
# tar zxvf memcache-2.2.5.tgz # cd memcache-2.2.5/ # /usr/local/php/bin/phpize # ./configure --with-php-config=/usr/local/php/bin/php-config # make # make install # cd ../
8.2 PDO_MySQL
# tar zxvf PDO_MYSQL-1.0.2.tgz # cd PDO_MYSQL-1.0.2/ # /usr/local/php/bin/phpize # ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql # make # make install # cd ../
8.3 安装eaccelerator (PHP加速器)
# tar jxvf eaccelerator-0.9.6.tar.bz2 # cd eaccelerator-0.9.6/ # /usr/local/php/bin/phpize # ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config # make # make install # cd ../
9 修改PHP.INI 文件
查找/usr/local/php/etc/php.ini中的extension_dir = "./"
修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
并在此行后增加以下几行
extension = "memcache.so"
extension = "pdo_mysql.so"
保存。
10 配置eAccelerator加速
PHP创建缓存目录
mkdir -p /usr/local/eaccelerator_cache
在php.ini文件最后面添加下面几行内容就可以了
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
11 重新配置apache2让他支持php
在LoadModule php5_module modules/libphp5.so
添加AddType application/x-httpd-php .php
OK,基本的安装已经完成.
重新起动APACHE:
# /usr/local/apache2/bin/apachectl graceful ---记得每次修改php.ini配置或httpd.conf 配置都要重启Apache
12 Apache配置httpd-vhosts虚拟主机
12.1 修改httpd.conf 文件
(a) 添加如下两行(假设当前是基于同一IP的两个端口)
Listen 8080
Listen 8081
(b) 注释以下内容
#ServerAdmin you@example.com
#DocumentRoot "/usr/local/apache2/htdocs"
#<Directory "/usr/local/apache2/htdocs">
(c) 修改Directory模块内容(相当是全局的,以后httpd-vhosts.conf也会用到这个设置)
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all (将 Deny 改成 Allow)
</Directory>
(c) 找到如下模块
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
去掉前面的#,这样就开启了httpd-vhosts虚拟主机文件。
12.2 修改httpd-vhosts文件
NameVirtualHost *:8080
NameVirtualHost *:8081
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:8080>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/home/www/htdocs/8080"
ServerName test.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "/home/www/logs/8080-error.log"
CustomLog "/home/www/logs/8080-access.log" common
</VirtualHost>
<VirtualHost *:8081>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/home/www/htdocs/8081"
ServerName test2.example.com
ErrorLog "/home/www/logs/8081-error.log"
CustomLog "/home/www/logs/8081-access.log" common
</VirtualHost>
13 查看配置是否正确并重启apache
/usr/local/apache2/bin/apachectl -S --检查配置文件的语法
# /usr/local/apache2/bin/apachectl graceful
或者
# /usr/local/apache2/bin/apachectl -k restart
前一种方法不会中断当前的客户端连接,后一种方法则会中断当前客户端的连接
如果配置没有什么问题,到此就可以http://127.0.0.1:8080和http://127.0.0.1:80801 访问虚拟机的web页面了。
接下来要做的事情就是通过nginx 反向代理php请求
14 安装nginx所需软件包
tar zxvf pcre-8.01.tar.gz cd pcre-8.01/ ./configure make && make install cd ../
15 安装nginx
tar zxvf nginx-0.7.65.tar.gz cd nginx-0.7.65/ ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module make && make install cd ../
16 nginx做负载均衡(实现动静分离),其详细配置如下:
user www www; worker_processes 8; error_log logs/error.log; pid logs/nginx.pid; worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { include mime.types; default_type application/octet-stream; #charset gb2312; server_names_hash_bucket_size 128; client_header_buffer_size 64k; large_client_header_buffers 4 128k; client_max_body_size 8m; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; upstream backphp_service { server 192.168.52.246:8080 weight=1 max_fails=2 fail_timeout=180s; server 192.168.52.246:8081 weight=1 max_fails=2 fail_timeout=180s; } server { listen 80; server_name test.nginx.sdo.com; root /home/www/static; location ~ .+\.php($|/) { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://backphp_service; } location ~ .*\.(html|gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; } } }
17 启动nginx 进程
ulimit -SHn 65535
/usr/local/nginx/sbin/nginx
18 配置开机自启动
echo "ulimit -SHn 65535" >>/etc/rc.local
echo "/usr/local/apache2/bin/apachectl -k start" >>/etc/rc.local
echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local
到这里工作已经全部完成!
相关文章推荐
- linux nginx+apache+php+mysql 安装配置
- Linux+Nginx+Apache+PHP+Mysql安装配置笔记
- Linux下nginx,apache,memcached,php,mysql的安装和配置
- linux下Apache、Mysql与php的安装配置
- Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)
- Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)
- linux中查看nginx、apache、php、mysql配置文件路径的方法
- linux中查看nginx、apache、php、mysql配置文件路径的方法
- linux下apache、mysql、php安装配置详细笔记
- Linux|CentOS+Nginx+Apache+MySQL+PHP+Tomcat的配置教程,完美支持PHP、JAVA
- [LNAMP]Linux+Apache+Nginx+MySQL+PHP纯手动安装编译
- linux+nginx+apache+mysql+php配置
- centos下利用yum安装LAMP(Linux+Apache+MySQL+PHP)及配置
- Apache+php+mysql在Linux下的安装与配置
- CentOS下安装配置LAMP(Linux+Apache+MySQL+PHP)
- LNAMP(Linux+Nginx+Apache+Mysql+PHP)高性能架构配置实战版
- Linux(centOS)手动安装Apache+MySQL+PHP+Memcached+Nginx
- LAMP攻略: LAMP环境搭建,Linux下Apache,MySQL,PHP安装与配置
- linux+nginx+php+mysql安装及配置
- 【centos6.5】CentOS 6.5系统安装配置LAMP(Apache+PHP5+MySQL)服务器环境(linux公社)