Linux+Apache+Nginx+Mysql+PHP完美配置教程.docx
《Linux+Apache+Nginx+Mysql+PHP完美配置教程.docx》由会员分享,可在线阅读,更多相关《Linux+Apache+Nginx+Mysql+PHP完美配置教程.docx(26页珍藏版)》请在冰豆网上搜索。
Linux+Apache+Nginx+Mysql+PHP完美配置教程
Linux+apache+nginx+mysql+php完美配置教程
一、准备工作
1、安装编译工具gcc、gcc-c++
注意解决依赖关系,推荐使用yum安装,若不能联网可使用安装光盘做为yum源——
1)编辑yum配置文件:
#mount/dev/cdrom/mnt/cdrom
#vi/etc/yum.repos.d/CentOS-Media.repo
[c5-media]
name=CentOS-$releasever-Media
baseurl=file:
///mnt/cdrom*修改为光盘挂载点
file:
///media/cdrom/
file:
///media/cdrecorder/
gpgcheck=1
enabled=1*改为1意为启用
gpgkey=file:
///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
2)剪切/etc/yum.repos.d/CentOS-Base.repo
#mv/etc/yum.repos.d/CentOS-Base.repo/backup
3)依次安装gcc、gcc-c++
#yum-yinstallgcc
#yum-yinstallgcc-c++
2、关闭系统RPM安装包的Apache、MySQL的服务
关闭启动的服务httpd、mysqld
#servicehttpdstop
#servicemysqldstop
确定rpm包安装的httpd和mysqld不能开机自启动
chkconfig--level2345httpd(mysqld)off
3、关闭SELinux,允许防火墙80端口访问
1)关闭SELinux
#vi/etc/selinux/config
SELINUX=disabled*若安装时没有禁用SELinux,将enforcing改为disabled
修改后需重新启动Linux方可生效!
2)关闭防火墙Netfilter/iptables
因尚未做防火墙讲解,直接简单的关闭所有防火墙设置:
#iptables-F*如果没有禁用防火墙,默认80端口禁止访问
-Z-X
4、关闭不必要自启动服务
#ntsysv
以下列出服务可保持自启动,未列出的服务都可以关闭:
atd
crond#atd、crond计划任务
irqbalance
microcode_ctl#系统irq端口调用,系统服务
network#网络设置
sendmail#邮件
sshd#远程管理
syslog#系统日志
5、拷贝源码包,解包解压缩
建议将LAMP环境安装源码包统一存放在一个目录下,如/lamp
可编写个批量处理脚本,一次性把所有.tar.gz的安装包解包解压缩
#vitar.sh
cd/lamp
/bin/ls*.tar.gz>ls.list
/bin/ls*.tgz>>ls.list
forTARin`catls.list`
do
/bin/tar-zxf$TAR
done
/bin/rmls.list
6、查看确认磁盘空间未满
df-h
*若/分区已满,可以移动安装包到其他分区或删除其他无用文件
二、编译安装
●每个源码包配置编译安装完成后,确认安装目录下是否生成安装文件
以下版本都是比较稳定的版本,虽然不是最新的……
软件
Linux
Apache
Nginx
Mysql
PHP
版本
Centos5.5
2.2.9
0.8.46
5.5.3
5.2.14
1.准备php函数的rpm包
yum-yinstallgccgcc-c++autoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-develglib2glib2-develbzip2bzip2-develncursesncurses-develcurlcurl-devele2fsprogse2fsprogs-develkrb5krb5-devellibidnlibidn-developensslopenssl-developenldapopenldap-develnss_ldapopenldap-clientsopenldap-servers
2.准备lnmp其他的源代码包
wget
wget
wget
wget
wget
wget
wget
wget
wget
wget
wget
wget
wget
wget
wget
3.安装php-5.2.14源代码包所需要的函数支持包
tarzxvflibiconv-1.13.1.tar.gz
cdlibiconv-1.13.1/
./configure--prefix=/usr/local/libiconv
make
makeinstall
cd../
tarzxvflibmcrypt-2.5.8.tar.gz
cdlibmcrypt-2.5.8/
./configure&&make&&makeinstall
#安装libltdl,也在libmcrypt源码目录中,非新软件
cdlibltdl/
./configure--enable-ltdl-install
make
makeinstall
cd../../
tarzxvfmhash-0.9.9.9.tar.gz
cdmhash-0.9.9.9/
./configure&&make&&makeinstall
cd../
建立软链接文件
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
tarzxvfmcrypt-2.6.8.tar.gz
cdmcrypt-2.6.8/
./configure&&make&&makeinstall
cd../
若提示
configure:
error:
***libmcryptwasnotfound的问题
configure:
error:
***libmcryptwasnotfound
为了的到mcrypt.so库文件,先后安装编译了mhash和libmcrypt,但是到最后编译mcrypt时报错:
configure:
error:
***libmcryptwasnotfound
最后发现是因为环境变量的问题,gcc编译的时候根据自身定义的变量寻找相关函数库等文件,
libmcrypt也是刚安装的,在变量中没有定义出来,所以手动添加:
[root@localhostmodules]#exportLD_LIBRARY_PATH=/usr/local/lib:
$LD_LIBRARY_PATH
再次编译即可
4.编译安装MySQL5.5.3-m3(时间会比较长)
groupaddmysql
useradd-gmysqlmysql
tarzxvfmysql-5.5.3-m3.tar.gz
cdmysql-5.5.3-m3
./configure--prefix=/usr/local/mysql--without-debug--enable-thread-safe-client--with-pthread--enable-assembler--enable-profiling--with-mysqld-ldflags=-all-static--with-client-ldflags=-all-static--with-extra-charsets=all--with-plugins=all--with-mysqld-user=mysql--without-embedded-server--with-server-suffix=-community--with-unix-socket-path=/tmp/mysql.sock
make
#编译
makeinstall
#安装
cp-f/usr/local/mysql/share/mysql/my-f/etc/f
#准备mysql配置文件
vi/etc/f
[client]
default-character-set=utf8
#修改客户端和连接字符集
[mysqld]
character-set-server=utf8
#修改服务器和数据库字符集
collation-server=utf8_general_ci
#修改服务器校验字符集登陆mysql后可以\s查看字符集
setfacl-mu:
mysql:
rwx-R/usr/local/mysql
setfacl-md:
u:
mysql:
rwx-R/usr/local/mysql
#设置权限
/usr/local/mysql/bin/mysql_install_db--user=mysql
#安装mysql和test数据库
/usr/local/mysql/bin/mysqld_safe--user=mysql&
#启动mysql服务
/usr/local/mysql/bin/mysqladmin-urootpassword123456
#修改mysql登录密码为123456
/usr/local/mysql/bin/mysql-uroot-p123456
#用mysql登录,登录成功则说明mysql安装成功
5.编译安装PHP(FastCGI模式。
使用fastCGI管理php,加快php解析速度)
tarzxvfphp-5.2.14.tar.gz
gzip-cdphp-5.2.14-fpm-0.5.14.diff.gz|patch-dphp-5.2.14-p1
#解压并打补丁,让php支持fpm来方便管理php-cgi进程(使用php-fpm管理fastCGI)
#gzip-c保留源文件-d解压
cdphp-5.2.14/
./configure--prefix=/usr/local/php--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/libiconv--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-discard-path--enable-safe-mode--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--with-curl--with-curlwrappers--enable-mbregex--enable-fastcgi--enable-fpm--enable-force-cgi-redirect--enable-mbstring--with-mcrypt--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-ldap--with-ldap-sasl--with-xmlrpc--enable-zip--enable-soap
makeZEND_EXTRA_LIBS='-liconv'
#编译过程设定变量(编译过程需要)
makeinstall
cpphp.ini-dist/usr/local/php/etc/php.ini
cd../
6.准备编译安装PHP5扩展模块
tarzxvfmemcache-2.2.5.tgz
cdmemcache-2.2.5/
/usr/local/php/bin/phpize
./configure--with-php-config=/usr/local/php/bin/php-config&&make&&makeinstall
cd../
tarjxvfeaccelerator-0.9.6.1.tar.bz2
cdeaccelerator-0.9.6.1/
/usr/local/php/bin/phpize
./configure--enable-eaccelerator=shared--with-php-config=/usr/local/php/bin/php-config
make
makeinstall
cd../
tarzxvfPDO_MYSQL-1.0.2.tgz
cdPDO_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
makeinstall
cd../
tarzxvfImageMagick.tar.gz
cdImageMagick-6.5.1-2/
./configure&&make&&makeinstall
cd../
tarzxvfimagick-2.3.0.tgz
cdimagick-2.3.0/
/usr/local/php/bin/phpize
./configure--with-php-config=/usr/local/php/bin/php-config&&make&&makeinstall
cd../
7.安装apache(同时让php生效,设置完成后,apache就能解析php了)
cdhttpd-2.2.9
./configure--prefix=/usr/local/apache2/--sysconfdir=/usr/local/apache2/etc/--with-included-apr--enable-so--enable-deflate=shared--enable-expires=shared--enable-rewrite=shared
make
makeinstall
cd../
libphp5.so文件是apache解析php模块
cp/lnmp/libphp5.so/usr/local/apache2/modules/libphp5.so
创建软链接
ln-sf/usr/local/lib/libiconv.so.2/usr/lib/libiconv.so.2
让php生效,编辑httpd.conf,加入一下两句话(任意位置)
vi/usr/local/apache2/etc/httpd.conf
AddTypeapplication/x-httpd-php.php.phtml.phps(注意T的大小写)
LoadModulephp5_modulemodules/libphp5.so
*.phtml为将.phps做为PHP源文件进行语法高亮显示
重启Apache服务:
/usr/local/apache2/bin/apachectlrestart
*Apache无法启动,提示cannotrestoresegmentprotafterreloc:
Permissiondenied错误,为SELinux问题,可关闭SELinux或者执行命令chcon-ttexrel_shlib_t/usr/local/apache2/modules/libphp5.so
测试:
vi/usr/local/apache2/htdocs/test.php
phpinfo();
?
>
通过浏览器输入地址访问:
http:
//Apache服务器地址/test.php
*有时第一次浏览器测试会失败,关闭浏览器重启再尝试即可,非编译错误
8.修改php.ini文件,让php模块生效
cp/lnmp/php-5.2.14/php.ini-dist/usr/local/php/etc/php.ini
vi/usr/local/php/etc/php.ini
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
手工添加
extension="memcache.so"
extension="pdo_mysql.so"
extension="imagick.so"
再查找output_buffering=Off
修改为output_buffering=On
再查找;cgi.fix_pathinfo=0
修改为cgi.fix_pathinfo=0,防止Nginx文件类型错误解析漏洞
8.在php.ini中配置eAccelerator加速PHP
mkdir-p/usr/local/eaccelerator_cache
#准备eaccelerator缓存目录
vi/usr/local/php/etc/php.ini
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/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"
press="1"
press_level="9"
9