# useradd www -M -s /sbin/nologin(www能夠用nginx,說明是nginx用戶)
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.13.zip # unzip pcre-8.13.zip # cd pcre-8.13 # ./configure # make && make install
(若是有錯誤提示: php
請按照下面的安裝方法:安裝pcre-devel與openssl-devel解決問題 mysql
yum -y install pcre-devel openssl openssl-devel)
MGB,安裝出現一個問題 make: *** No rule to make targetbuild', needed bydefault'. Stop.,莫名的奇妙; nginx
安裝make: c++
yum -y install gcc automake autoconf libtool make
安裝g++: git
yum install gcc gcc-c++ yum -y install openssl openssl-devel
# tar -zxvf nginx-1.3.9.tar.gz # cd nginx-1.3.9 # ./configure --prefix=/opt/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.34 # make && make install --with-pcre 後面的路徑 爲源碼包解壓後的路徑,而不是安裝路徑,不然會報錯!
# yum -y install libjpeg-devel libpng-devel # wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.8.tar.gz(下載,這個路徑不必定正確,能夠經過其餘方法下載) # tar -zxvf libmcrypt-2.5.8.tar.gz # cd libmcrypt-2.5.8 # ./configure # make && make install
==64位系統== github
ln -s /usr/lib64/mysql/ /usr/lib/mysql
==64位系統== sql
# cd php-5.4.9 # ./configure --prefix=/opt/php --with-iconv --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt ='對於libmcrypt的安裝目錄' --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-mysql --with-mysqli --enable-sqlite-utf8 --with-pdo-mysql --enable-ftp --with-jpeg-dir --with-freetype-dir --with-png-dir --enable-fpm --with-fpm-user=www --with-fpm-group=www # make && make install
相關錯誤解決: shell
configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/ 數據庫
其實就是curl的dev包沒有安裝, 解決方案: 終端下 服務器
# yum -y install curl-devel
而後就能夠繼續了
在CentOS編譯PHP5的時候有時會遇到如下的一些錯誤信息,基本上均可以經過yum安裝相應的庫來解決。如下是具體的一些解決辦法:
Fix: yum install bzip2-devel
Fix: yum install curl-devel
Fix: yum install db4-devel
Fix: yum install libjpeg-devel
Fix: yum install libpng-devel
Fix: Reconfigure your PHP with the following option. --with-xpm-dir=/usr
Fix: yum install libXpm-devel
Fix: yum install gmp-devel
Fix: yum install libc-client-devel
Fix: yum install openldap-devel
Fix:
yum install unixODBC-devel
Fix: yum install postgresql-devel
Fix: yum install sqlite-devel
Fix: yum install aspell-devel
Fix: yum install net-snmp-devel
Fix: yum install libxslt-devel
Fix: yum install libxml2-devel
Fix: yum install pcre-devel
Fix: yum install mysql-devel
Fix: yum install unixODBC-devel
Fix:
yum install postgresql-devel
Fix: yum install pspell-devel
Fix: yum install net-snmp-devel
Fix: yum install libxslt-devel
# cp php.ini-production /opt/php/lib/php.ini 或是/usr/local/lib/php.ini # cp /opt/php/etc/php-fpm.conf.default /opt/php/etc/php-fpm.conf # /opt/php/bin/php --ini //測試ini文件是否加載
修改php.ini
[PHP] safe_mode = On register_globals = Off magic_quotes_gpc = Off allow_url_fopen = Off allow_url_include = Off expose_php=Off disable_functions = shell_exec,system,exec,passthru,show_source,curl_exec,curl_multi_exec,get_cfg_var [Date] date.timezone = 「Asia/Shanghai」
修改php-fpm.conf
[global] pid = run/php-fpm.pid error_log = log/php-fpm.log log_level = notice emergency_restart_threshold = 0 emergency_restart_interval = 0 [www] pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35(不能大於max_children) pm.max_requests = 500
# cp nginx /etc/init.d/nginx # cp php-fpm /etc/init.d/php-fpm # chmod 755 /etc/init.d/nginx # chmod 755 /etc/init.d/php-fpm # chkconfig --add nginx # chkconfig --add php-fpm # chkconfig nginx on # chkconfig php-fpm on
mkdir -p /opt/mysql/
mkdir -p /data/mysql/
# useradd mysql -M -s /sbin/nologin # chown mysql.mysql -R /data/mysql/
# yum -y install cmake # yum -y install ncurses-devel
tar -zxvf mysql-5.5.28.tar.gz cd mysql-5.5.28 cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 # make && make install
安裝完mysql服務器運行正常,但沒法使用gbk字符集,系統裝了中文支持,mysql重裝了幾回都不行.
show character set裏沒有gbk;
set names gbk 就提示錯誤 #1115 - Unknown character set: 'gbk'
解決方案:
上面的編譯參數-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk這個參數引發的問題方法1、去掉這個參數,默認值是支持all的charset 方法2、直接改成-DWITH_EXTRA_CHARSETS=all加入-DDEFAULT_COLLATION=utf8_general_ci選項後,啓動mysql可能會有問題,須在my.cnf 文件 [mysqld]加入character_set_server=utf8
# cd /opt/mysql # scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/data/mysql/
# cp support-files/my-medium.cnf /etc/my.cnf(這裏的my.cnf參考服務器的內存大小 通常my-medium.cnf是256M,my-large.cnf是512M) # cp support-files/mysql.server /etc/init.d/mysql # chmod 755 /etc/init.d/mysql # chkconfig mysql on # export PATH=/opt/mysql/bin:$PATH //設置環境變量
# /etc/init.d/mysql start # mysqladmin -uroot password '123123'
進行再修改密碼的語句
1: UPDATE mysql.user SET Password = PASSWORD(‘newpwd’) WHERE User = ‘root’;(生新設置密碼) 2: flush privileges;(刷新權限)
注:mysql日誌文件保存在/data/mysql/下面,對應數據文件保存的路徑(好比.err)。
http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz https://github.com/downloads/libevent/libevent/libevent-2.0.18-stable.tar.gz
tar -zxvf libevent-2.0.18-stable.tar.gz cd libevent-2.0.18-stable ./configure --prefix=/usr/local/libevent make && make install cd ../
tar -zxvf memcached-1.4.13.tar.gz cd memcached-1.4.13 ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/ make && make install cd ..
(1).在http://pecl.php.net/package/memcache 選擇相應想要下載的memcache版本。 (2).安裝PHP的memcache擴展
tar vxzf memcache-2.2.6.tar.gz cd memcache-2.2.6 /usr/local/php/bin/phpize ./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir make make install
(3).上述安裝完後會有相似這樣的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
(4).把php.ini中的extension_dir = 「./」修改成
extension_dir = 「/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/」
(5).添加一行來載入memcache擴展:extension=memcache.so
/usr/local/memcached/bin/memcached -d -l 192.168.1.2 -u www -m 512 -c 10240 -p 12000 -P /tmp/memcached.pid
將以上加入到/etc/rc.local方便下次自動啓動 *注:用戶-u必須指定,在此處示例所用的是WEB用戶www
telnet 192.168.1.2 12000 stats #查看運行狀態 quit #退出
php5.4.9啓動命令:/opt/php/sbin/php-fpm 檢測php運行進程 ps aux|grep php-fpm php-fpm 關閉: kill -INT `cat /usr/local/php/var/run/php-fpm.pid` 關閉後,須要 /opt/php/sbin/php-fpm啓動;沒有php-fpm.pid就用touch建立。 php-fpm 重啓: kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` Nginx 服務啓動命令:/opt/nginx/sbin/nginx 語法檢測 /opt/nginx/sbin/nginx -t 檢測nginx.conf文件語法;
php啓動報錯:
ERROR: [pool www] cannot get uid for user 'fpm'
須要在php-fpm上改動user=fpm group=fpm fpm改爲nginx;(安裝nginx的用戶)