首页 > 代码库 > Linux+Nginx+Mysql+PHP
Linux+Nginx+Mysql+PHP
1. mkdir –p /data0/software
2. cd /data0/software
3. yum install gcc gcc-c++ autoconf automake make libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogse 2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers kernel-headers kernel-devel pcre pcre-devel openssl openssl-devel cmake ncurses-devel bison libtool-ltdl libtool-ltdl-devel libevent-devel unixODBC unixODBC-devel libmcrypt-devel mhash-devel libxslt-devel libidn libidn-devel pcre pcre-devel krb5-libs krb5-devel
4. 为安装PHP做准备:
1.安装libiconv1.4
libiconv库为需要做转换的应用提供了iconv() 函数,以实现字符编码间的转换。
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14/
./configure --prefix=/usr/local
make && make install
cd ../
2.安装libmcrypt
libmcrypt是加密算法扩展库,支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法。
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 ../../
3.安装支持库mhash
tar –zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make && make install
cd ../
4.建立链接文件:
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
5.安装mcrypt-2.6.8
tar -zxvfmcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
/sbin/ldconfig
./configure
make&& make install
cd ../
5. 安装MySQL:
useradd mysql
tar -zxvf mysql-5.1.38.tar.gz
cd mysql-5.1.38
./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 --with-plugins=innobase
make && make install
chmod +w/usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
mkdir –p /data0/mysql/3306/data/
chown –R mysql:mysql /data0/mysql
su – mysql
/usr/local/mysql/bin/mysql_install_db –basedir=/usr/local/mysql –datadir=/data0/mysql/3306/data –user=mysql
cd/usr/local/mysql/share/mysql
cp my-huge.cnf /data0/mysql/3306/my.cnf
cd /data0/mysql/3306/
cp my.cnf my.cnf.bak
vim my.cnf,修改文件,内容如下:
more /data0/mysql/3306/my.cnf|grep -v ‘^$‘|grep -v ‘#‘
[client]
default-character-set= utf8
port = 3306
socket = /tmp/mysql.sock
[mysqld]
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir =/usr/local/mysql
datadir =/data0/mysql/3306/data
skip-locking
key_buffer_size =384M
max_allowed_packet =1M
table_open_cache =512
sort_buffer_size =2M
read_buffer_size =2M
read_rnd_buffer_size= 8M
myisam_sort_buffer_size= 64M
thread_cache_size =8
query_cache_size =32M
thread_concurrency =8
log-bin=/data0/mysql/3306/binlog
server-id = 1
[mysqldump]
quick
max_allowed_packet =16M
[mysql]
no-auto-rehash
prompt="(\u:linxi.com:)[\d]>"
[myisamchk]
key_buffer_size =256M
sort_buffer_size =256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
编辑mysql的启动文件:
vim /data0/mysql/3306/mysql,文件内容如下:
more /data0/mysql/3306/mysql |grep -v ‘^$‘|grep -v ‘#‘
mysql_port=3306
mysql_username="admin"
mysql_password="12345678"
function_start_mysql()
{
printf "Starting MySQL...\n"
/bin/sh/usr/local/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/${mysql_port}/my.cnf 2>&1 > /dev/null&
}
function_stop_mysql()
{
printf "Stoping MySQL...\n"
/usr/local/mysql/bin/mysqladmin -u ${mysql_username}-p${mysql_password} -S /tmp/mysql.sock shutdown
}
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep 5
function_start_mysql
}
function_kill_mysql()
{
kill -9 $(ps -ef|grep ‘bin/mysqld_safe‘|grep ${mysql_port}|awk ‘{printf
$2}‘)
kill -9 $(ps -ef|grep ‘libexec/mysqld‘|grep ${mysql_port}|awk ‘{printf $
2}‘)
}
if [ "$1" = "start" ]; then
function_start_mysql
elif [ "$1" = "stop" ]; then
function_stop_mysql
elif [ "$1" = "restart" ]; then
function_restart_mysql
elif [ "$1" = "kill" ]; then
function_kill_mysql
else
printf "Usage: /data0/mysql/${mysql_port}/mysql {start|stop|restart|kill
}\n"
fi
chmod +x /data0/mysql/3306/mysql
/data0/mysql/3306/mysql start
/usr/local/mysql/bin/mysql –uroot –p –S/tmp/mysql.sock
grant all privileges on *.* to ‘admin’@’localhost’identified by ‘12345678’;
grant all privileges on *.* to ‘admin’@’127.0.0.1’identified by ‘12345678’;
grant all privileges on *.* to ‘admin’@’%’ identifiedby ‘12345678’;
flush privileges;
use mysql;
select host,user,password from user;
lsof –n –i:3306
ps –ef|grep mysqld|grep –v grep
/data0/mysql/3306/mysql stop
6. 编译安装PHP(FastCGI模式):
tar -zxvf php-5.4.22.tar.gz
cd php-5.4.22
cp -frp /usr/lib64/libldap* /usr/lib/
./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 --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --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 --with-pear
make ZEND_EXTRA_LIBS=‘-liconv‘
make install
cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
vim /etc/profile,添加:
PATH=/usr/local/php/bin:$PATH
PATH=/usr/local/php/sbin:$PATH
chmod 755/etc/init.d/php-fpm
chkconfig --addphp-fpm
/usr/local/php/sbin/php-fpm
ps -ef|grep php
7. 编译安装PHP的扩展:
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 ../
tar –zxvf eaccelerator-eaccelerator-42067ac.tar.gz
cd eaccelerator-eaccelerator-42067ac
/usr/local/php/bin/phpize
./configure--enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../
tar –zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
ln -s/usr/local/mysql/include/mysql/* /usr/local/include/
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make&& make install
cd ../
tar -zxvf ImageMagick-6.8.7-10.tar.gz
cd ImageMagick-6.8.7-10
./configure
make && make install
cd ../
tar -zxvf imagick-3.1.2.tgz
cd imagick-3.1.2
/usr/local/php/bin/phpize
./configure--with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../
8.修改php.ini文件:
cp php.ini php.ini.bak
手工修改,查找php.ini中的extension_dir=”./”修改为:
extension_dir=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/”
并在此行后增加几行:
extension=”memcache.so”
extension=”pdo_mysql.so”
extension=”imagick.so”
查找output_buffering= Off改为:
output_buffering= On
修改php.ini时区:
date.timezone= Asia/Shanghai
9.配置eAccelerator加速PHP:
mkdir -p /usr/local/eaccelerator_cache
vim php.ini:
按shift+g,跳转到配置文件的最末尾,加上配置信息:
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/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"
10.创建www用户和组,创建虚拟机的目录:
useradd www
mkdir -p /data0/htdocs/blog
chmod +w /data0/htdocs/blog/
chown -R www:www /data0/htdocs/blog/
mkdir -p /data0/htdocs/www
chmod +w /data0/htdocs/www
chown -R www:www /data0/htdocs/www
11.创建php-fpm配置文件:
cp /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php-fpm.conf.bak
vim /usr/local/php/etc/php-fpm.conf:
修改成下面的结果:
more php-fpm.conf|grep -v ‘^$‘|grep -v ‘;‘
[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = notice
emergency_restart_threshold = 10
emergency_restart_interval = 1m
process_control_timeout = 5s
daemonize = yes
events.mechanism = epoll
[www]
user = www
group = www
listen = 127.0.0.1:9000
listen.mode = 0666
listen.allowed_clients = 127.0.0.1
pm = static
pm.max_children = 128
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 102400
slowlog = log/$pool.log.slow
request_slowlog_timeout = 0s
request_terminate_timeout = 0
rlimit_files = 65535
rlimit_core = 0
chroot =
catch_workers_output = yes
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
env[OSTYPE] = $OSTYPE
env[MACHTYPE] = $MACHTYPE
env[MALLOC_CHECK_] = 2
php_admin_value[sendmail_path] = /usr/sbin/sendmail-t -i -f www@my.domain.com
php_flag[display_errors] = on
启动php-fpm:
/usr/local/php/sbin/php-fpm
ps –ef|grep php-fpm|grep –v ‘grep’
本文出自 “林夕” 博客,请务必保留此出处http://lutaoxu.blog.51cto.com/4224602/1548506
Linux+Nginx+Mysql+PHP