8.7 初始化安装数据库
# /usr/local/mysql/scripts/mysql_install_db \--defaults-file=/var/mysql/my.cnf \--basedir=/usr/local/mysql \--datadir=/var/mysql/data \--user=mysql
8.8 将 mysql 加入开机启动
# chmod +x /etc/init.d/mysqld# vi /etc/init.d/mysqld查找并修改:basedir=/usr/local/mysqldatadir=/var/mysql/data
8.9 添加为系统服务
# chkconfig --add mysqld# chkconfig --level 2345 mysqld on
8.10 启动mysql 设置 root 密码
# service mysqld start
# /usr/local/mysql/bin/mysqladmin -u root password "123456"错误一:mysqladmin, mysql ... 命令无法执行:# export PATH=/usr/local/mysql/bin:$PATH错误二:Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)# yum install ncurses-devel
8.11 添加并发优化
# vi /usr/local/mysql/bin/mysqld_safe在 executing mysqld_safe 的下一行,加上:export LD_PRELOAD=/usr/local/lib/libtcmalloc.so启动 mysql:# service mysqld restart使用lsof命令查看tcmalloc是否起效:# /usr/sbin/lsof -n | grep tcmalloc如果发现以下信息,说明tcmalloc已经起效:mysqld 10847 mysql mem REG 8,5 1203756 20484960 /usr/local/lib/libtcmalloc.so.0.0.0
9. 开始安装 PHP
9.1 下载 php 和相关软件包
# cd /mydata/softwget http://cn2.php.net/get/php-5.4.8.tar.gz/from/this/mirrorwget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gzwget http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0wget http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0wget http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0wget ftp://ftp.p_w_picpathmagick.org/pub/ImageMagick/ImageMagick-6.8.0-2.tar.gzwget http://sourceforge.net/projects/p_w_picpathmagick/files/old-sources/6.x/6.6/ImageMagick-6.6.9-10.tar.gzwget http://pecl.php.net/get/imagick-3.1.0RC2.tgzwget http://pecl.php.net/get/memcache-3.0.7.tgzwget https://launchpad.net/libmemcached/1.0/1.0.4/+download/libmemcached-1.0.4.tar.gzwget https://launchpad.net/libmemcached/1.0/1.0.13/+download/libmemcached-1.0.13.tar.gzwget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gzwget http://pecl.php.net/get/memcached-2.1.0.tgzwget https://github.com/eaccelerator/eaccelerator/tarball/masterwget https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz
9.2 安装 php 相关的软件
这部分代码安装过好多太服务器几乎没有什么问题,可以直接全部复制粘贴到ssh就好了,我就不打 # 号了tar zxvf libiconv-1.14.tar.gzcd libiconv-1.14./configure --prefix=/usr/localmake && make installcd ../tar zxvf libmcrypt-2.5.8.tar.gzcd libmcrypt-2.5.8/./configuremake && make install/sbin/ldconfigcd libltdl/./configure --enable-ltdl-installmake && make installcd ../../tar zxvf mhash-0.9.9.9.tar.gzcd mhash-0.9.9.9/./configuremake && make installcd ../ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.laln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.soln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.aln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.laln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.soln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-configln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.laln -s /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.soln -s /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8ln -s /usr/local/lib/libmhash.a /usr/lib64/libmhash.aln -s /usr/local/lib/libmhash.la /usr/lib64/libmhash.laln -s /usr/local/lib/libmhash.so /usr/lib64/libmhash.soln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18ln -sv /usr/lib64/libldap* /usr/lib/tar zxvf mcrypt-2.6.8.tar.gzcd mcrypt-2.6.8//sbin/ldconfig./configuremake && make installcd ../
9.3 新建扩展配置目录
# mkdir -p /usr/local/php/etc/php.d/
9.4 开始安装 PHP 5.4.8
# tar xvzf php-5.4.8.tar.gz# cd php-5.4.8/# ./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-pdo-mysql=/usr/local/mysql/ --with-iconv-dir=/usr/local --enable-fpm \--disable-phar --with-fpm-user=www --with-fpm-group=www --with-pcre-regex \--with-config-file-scan-dir=/usr/local/php/etc/php.d \--with-zlib --with-bz2 --enable-calendar --with-curl --enable-dba --with-libxml-dir \--enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir \--enable-gd-native-ttf --enable-gd-jis-conv --with-mhash --enable-mbstring --with-mcrypt \--enable-pcntl --enable-xml --disable-rpath --enable-shmop --enable-sockets --enable-zip \--enable-bcmath --with-snmp --disable-ipv6 --with-xmlrpc --with-ldap --with-ldap-sasl --enable-exif \--enable-soap --enable-pdo --with-pdo-mysql --enable-sysvsem --enable-inline-optimization --with-curlwrappers# make ZEND_EXTRA_LIBS='-liconv'# make test# make install# cp php.ini-production /usr/local/php/etc/php.ini# PATH=/usr/local/php/bin:$PATH# PATH=/usr/local/php/sbin:$PATH提示:--enable-fastcgi --enable-force-cgi-redirect PHP 5.3以后已经强制开启了 fastcgi 了,具体查看官方说明:https://bugs.php.net/bug.php?id=50840&edit=1 最下面 FastCGI is now always enabled and cannot be disabled.错误:configure: error: Cannot find ldap libraries in /usr/lib.解决办法:ln -sv /usr/lib64/libldap* /usr/lib/注意 make test 的时候可能会出现 :
/mnt/sun/php-5.4.8/sapi/cli/php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory32位系统# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.1864位系统# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
9.5 开机启动 php-fpm
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm# chmod +x /etc/init.d/php-fpm# chkconfig --add php-fpm# chkconfig --level 2345 php-fpm on# cd ../
9.6 关于php-fpm 的操作说明与添加系统服务
PHP5.3.3以上版本的php-fpm重启、停止命令已经不是php-fpm start|stop|reload了,需要使用信号控制:详细内容查看该文章
9.7 安装 PHP 扩展
9.7.1 服务器版 memcached
memcached 把我搞晕了,有两个 memcached,我也不是很清楚具体区别,按我的理解应该是分为 服务器版 和 php 扩展版一开始用 服务器版来编译 php 扩展,搞了半天都没弄出来,后来才发现居然有两个,晕死了安装依赖包:
# tar zxvf libevent-2.0.20-stable.tar.gz# cd libevent-2.0.20-stable# ./configure --prefix=/usr/local/libevent# make && make install# cd ../# tar xvzf memcached-1.4.15.tar.gz# cd memcached-1.4.15# ./configure --enable-64bit --enable-threads --with-libevent=/usr/local/libevent# make && make install# cd ../检测是否安装成功:# ls -al /usr/local/bin/memcached# mkdir -p /var/run/memcached/启动 memcached:# /usr/local/bin/memcached -d -m 128 -u root -l 22.11.5.91 -p 11211 -c 256 -P /var/run/memcached/memcached.pid# ps aux|grep memcached关闭 memcached:# kill `cat /var/run/memcached/memcached.pid`新建启动和关闭脚本并赋执行权限:# cp memcached-1.4.15/scripts/memcached.sysv /etc/init.d/memcached# chmod 755 /etc/init.d/memcached修改配置:# vi /etc/init.d/memcached修改:PORT=11212USER=rootOPTIONS=""查找:daemon memcached -d -p ....修改为:daemon /usr/local/bin/memcached -d -p ....添加下面两行:chown $USER /usr/local/bin/memcached/usr/local/bin/memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /var/run/memcache/memcached.pid $OPTIONS添加到系统服务:
# chkconfig --add memcached# chkconfig --level 2345 memcached on# chkconfig --list memcached测试启动 检测 关闭:# service memcached start# ps aux|grep memcached# service memcached stop开启防火墙外网访问(单机可忽略该设置):# iptables -I INPUT -p tcp --dport 11211 -j ACCEPT# iptables -I OUTPUT -p tcp --sport 11211 -j ACCEPT# iptables-save# service iptables save
9.7.2 安装php扩展版 memcached
依赖库:
# tar zxvf libmemcached-1.0.13.tar.gz# cd libmemcached-1.0.13# ./configure --prefix=/usr/local/libmemcached# make && make install# cd ../安装 memcached# tar vxzf memcached-2.1.0.tgz# cd memcached-2.1.0# /usr/local/php/bin/phpize# ./configure --enable-memcached --with-libmemcached-dir=/usr/local/libmemcached --with-php-config=/usr/local/php/bin/php-config# make && make install# cd ..
9.7.3 安装 memcache
# tar zxvf memcache-3.0.7.tgz# cd memcache-3.0.7/# /usr/local/php/bin/phpize# ./configure --prefix=/usr/local/memcache --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir# make && make install# cd ../
9.7.4 安装图片处理软件 可取代 gd
# tar zxvf ImageMagick-6.8.0-2.tar.gz# cd ImageMagick-6.8.0-2/# export CFLAGS='-fPIC'# ./configure --prefix=/usr/local/ImageMagick --with-quantum-depth=8 --enable-share --enable-static# make && make install# cd ../# tar zxvf imagick-3.1.0RC2.tgz# cd imagick-3.1.0RC2/# /usr/local/php/bin/phpize# export PKG_CONFIG_PATH=/usr/local/ImageMagick/lib/pkgconfig/# ./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/ImageMagick# make && make install# cd ../
9.7.5 安装 eaccelerator 给 php 编译加速+缓存
# wget https://github.com/eaccelerator/eaccelerator/tarball/master# mv master eaccelerator-eaccelerator-42067ac.tar.gz# 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 ../新建目录:# mkdir /tmp/eaccelerator_cache# chmod 0777 /tmp/eaccelerator_cache
9.7.6 配置扩展
打开自动扫描的扩展目录:# cd /usr/local/php/etc/php.d--------------------------------忽略分割线------------------------------
# vi eaccelerator.ini写入:[eaccelerator]zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so"eaccelerator.shm_size="20"eaccelerator.cache_dir="/tmp/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"--------------------------------忽略分割线------------------------------# vi memcache.ini写入:extension = "memcache.so"memcache.chunk_size = 32768--------------------------------忽略分割线------------------------------
# vi memcached.ini写入:extension = "memcached.so"--------------------------------忽略分割线------------------------------
# vi imagick.ini写入:extension = "imagick.so"--------------------------------忽略分割线------------------------------
修改php配置:# vi /usr/local/php/etc/php.ini查找并修改:cgi.fix_pathinfo=0extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/"expose_php = Offallow_url_fopen = Offopen_basedir = /tmp/:/var/www/disable_functions = exec,system,passthru,chroot,scandir,chgrp,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_serverdate.timezone = Asia/Shanghai拷贝 php-fpm 配置:# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf# vi /usr/local/php/etc/php-fpm.conf查找并修改:以下为示例数值,按自己服务器实际性能配置:pm.max_children = 50pm.start_servers = 20pm.min_spare_servers = 5pm.max_spare_servers = 35pm.max_requests = 10240rlimit_files = 65535
10. 设置开机启动
# vi /etc/rc.local写入:ulimit -SHn 65535service mysqld startservice php-fpm startservice memcached startservice nginx start
11. 配置完成
弄了好几天,每天都熬到凌晨3点,终于弄完了,搞服务器真要累死人。。。写这个不容易,转载请注明出处啊,谢谢!
转载于:https://blog.51cto.com/nightwizard/1062627