爲公司搭建一個測試架構,要求跟真是環境貼近需要安裝Nginx、PHP、mysql、memcached、redis!
但是隻給了一臺R720的服務器,沒辦法,只能全跑在一臺上了
服務器型號:戴爾R710
內存:4G
操作系統:CentOS 6.4
CPU: E5520
各個包版本:
Nginx-1.2.1
Php-5.4.14
Mysql-5.5.29
Memcached-1.2.8
Redis-2.6.14
安裝Nginx
一些依賴包
yum install -y gcc gcc-c++ makezlib zlib-devel pcre* libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
1、安裝
tar zxf nginx-1.2.1.tar.gz ./configure --prefix=/usr/local/webserver/nginx/ make && make install
2、啓動Nginx
#/usr/local/webserver/nginx/sbin/nginx
安裝Mysql-5.5
1、準備
groupadd mysql useradd -r -g mysql mysql mkdir /usr/local/webserver/mysql mkdir -pv /usr/local/webserver/mysql/data chown mysql.mysql /usr/local/webserver/mysql/ -R yum -y install gcc gcc-c++ ncurses-devel libtool openssl-devel bison-devel ncurses-devel libaio-devel tar zxf mysql-5.5.29.tar.gz cd mysql-5.5.29
2、首先安裝cmake(Mysql-5.5安裝不同於以往版本,需要cmake編譯)
tar zxf cmake-2.8.7.tar.gz cd cmake-2.8.7 ./configure make && make install
3、編譯安裝
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DENABLED_PROFILING=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci make make install
注:編譯的時候如果沒有utf8_general_ci,會出現COLLATION'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'
4、配置
在源碼目錄下support-files目錄裏有很多配置文件的模版
#拷貝主配置文件 cp /root/mysql-5.5.29/support-files/my-innodb-heavy-4G.cnf /etc/my.cnf #創建啓動腳本,cp後可以使用/etc/init.d/mysqld start啓動 cp /root/mysql-5.5.29/support-files/mysql.server /etc/init.d/mysqld #修改權限 chmod 755 /etc/init.d/mysqld #初始化mysql sh scripts/mysql_install_db --user=mysql --basedir=/usr/local/webserver/mysql/ --datadir=/usr/local/webserver/mysql/data/ #創建鏈接到標準路徑下(修改環境變量指定,效果一樣) ln -s /usr/local/webserver/mysql/bin/* /usr/bin/ ln -s /usr/local/webserver/mysql/lib/* /usr/lib/ ln -s /usr/local/webserver/mysql/libexec/* /usr/local/libexec ln -s /usr/local/webserver/mysql/share/man/man1/* /usr/share/man/man1 ln -s /usr/local/webserver/mysql/share/man/man8/* /usr/share/man/man8
注:vim /etc/my.cnf (在[mysqld]裏添加一行skip-name-resolve = 1跳過域名解析,加快啓動速度)
5、啓動mysql
/etc/init.d/mysqld start
進入mysql,以下語句設置root密碼刪除沒用的用戶
/usr/local/mysql/bin/mysqladmin -u root password $mysqlrootpwd use mysql; update user set password=password('newpassword') where user='root'; delete from user where not (user='root') ; delete from user where user='root' and password=''; drop database test; DROP USER ''@'%'; flush privileges;
#mysql的一些安全設置
mysql_secure_installation
#mysql錯誤文件的位置
/usr/local/webserver/mysql/data/localhost.err
啓動時的兩個問題:
l啓動報錯:File'./mysql-bin.index' not found (Errcode: 13)
解決辦法:
一般就是權限問題,mysql用戶是否對數據庫目錄內的所有文件具有寫的權限
chown mysql.mysql -R data
l啓動報錯:0911029:10:22 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade tocreate it.
解決辦法:
出現這種問題是因爲沒有指定mysql安裝目錄和data目錄導致的,運行如下命令:
# /usr/local/mysql/scripts/mysql_install_db --user=mysql--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
安裝PHP
1、安裝 jpeg
groupadd www useradd -r -g www www yum install bzip2-devel net-snmp-devel #wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz # tar zxvf jpegsrc.v8d.tar.gz # cd jpeg-8d # ./configure -enable-shared -enable-static # make && make install clean
2、安裝libmcrypt庫
wget http://lcmp.googlecode.com/files/libmcrypt-2.5.8.tar.gz tar fvxz libmcrypt-2.5.8.tar.gz ./configure && make && make install
說明:libmcrypt默認安裝在/usr/local
3、安裝mhash
tar-zxvf mhash-0.9.9.9.tar.gz cd mhash-0.9.9.9 ./configure make && makeinstall
4、安裝mcrypt
tar zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8 export LD_LIBRARY_PATH=/usr/local/lib ./configure make && make install
說明:由於在配置Mcrypt時,會找不到libmcrypt的鏈接庫,導致無法編譯,因爲Libmcrypt的鏈接庫默認在/usr/local/lib文件夾下。因些在配置mcrypt時要加入LD_LIBRARY_PATH=/usr/local/lib 導入鍵接庫
5、開始安裝PHP
tar zxf php-5.4.14.tar.gz ./configure --prefix=/usr/local/webserver/php \ --with-libxml-dir=/usr/include/libxml2 \ --with-config-file-path=/usr/local/webserver/php/etc/ \ --with-mysql=/usr/local/webserver/mysql \ --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config \ --with-gd \ --enable-gd-native-ttf \ --with-zlib \ --with-mcrypt \ --with-pdo-mysql=/usr/local/webserver/mysql \ --enable-shmop \ --enable-soap \ --enable-sockets \ --enable-wddx \ --enable-zip \ --with-xmlrpc \ --enable-fpm \ --enable-mbstring \ --with-zlib-dir \ --with-bz2 \ --with-curl \ --enable-exif \ --enable-ftp \ --with-jpeg-dir=/usr/lib64 \ --with-png-dir=/usr/lib64 \ --with-freetype-dir=/usr/lib64 \ --with-iconv \ --enable-xml \ --enable-bcmath \ --enable-sysvsem \ --enable-inline-optimization \ --with-curlwrappers \ --enable-mbregex \ --with-openssl \ --enable-pcntl \ --with-gettext \ --enable-session make make install
Nginx+PHP整合,在安裝時必須啓用--enable-fpm
6、修改配置
cp php.ini-production /usr/local/webserver/php/etc/php.ini rm -rf /etc/php.ini ln -s /usr/local/webserver/php/etc/php.ini /etc/php.ini cp /usr/local/webserver/php/etc/php-fpm.conf.default /usr/local/webserver/php/etc/php-fpm.conf
7、修改 /usr/local/etc/php-fpm.conf 文件
pid = run/php-fpm.pid 卻掉註釋
讓Nginx支持PHP需要在定義server主機的時候添加
location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; }
在/usr/local/webserver/nginx/conf/目錄中創建fcgi.conf文件,輸入以下內容:
fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;
啓動:#/usr/local/sbin/php-fpm
安裝redis
1、獲取安裝文件
#wget http://download.redis.io/redis-stable.tar.gz
2、編譯安裝
tar xzvf redis-stable.tar.gz cd redis-stable make make install
3、配置
mkdir -p /etc/redis cp redis.conf /etc/redis
修改配置文件
#vi /etc/redis/redis.conf
僅修改: daemonize yes
4、啓動
/usr/local/bin/redis-server /etc/redis/redis.conf
查看啓動
ps -ef | grep redis
安Redis的PHP擴展
1、獲取
wget --no-check-certificate http://github.com/owlient/phpredis/tarball/master
2、安裝
tar zxf owlient-phpredis-2.1.1-1-g90ecd17.tar && cd owlient-phpredis-90ecd17/ /usr/local/webserver/php/bin/phpize ./configure --with-php-config=/usr/local/webserver/php/bin/php-config make && make install
3、配置
vim /usr/local/webserver/php/etc/php.ini
添加 extension = "redis.so"
安裝memcached
1、下載libevent1.4.11及memcached穩定版本(libevent 是安裝 memcached 的唯一前提條件。它是 memcached 所依賴的異步事件通知庫)
2、安裝libevent1.4.11
wget -c http://cloud.github.com/downloads/libevent/libevent/libevent-1.4.11-stable.tar.gz
./configure -prefix=/usr/local/libevent make && make install
3、安裝memcached
./configure -prefix=/usr/local/memcached --with-libevent=/usr/local/libevent make && make install export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libevent/lib
注:安裝memcached時需要指定libevent的安裝位置,最後一條命令是將libevent的lib目錄加入LD_LIBRARY_PATH裏
檢查,/usr/local/memcached,有2個目錄,安裝成功!
4、memcached運行參數
/usr/local/memcached/bin/memcached -d -m 128 -u root -l 192.168.0.97 -c 256 -P /tmp/memcached.pid
5、運行一下報錯原因及處理方法:
/usr/local/memcached/bin/memcached: error while loading shared libraries:libevent-1.4.so.2: cannot open shared object file: No such file or directory這樣的錯誤,原因是,memcached默認是到/usr/lib/裏找libevent-1.4.so.2,而我們安裝的是在/usr/local/lib裏面
執行:
ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
安裝Memcache的PHP擴展
1、解壓編譯安裝
cd memcache-2.2.5 /usr/local/webserver/php/bin/phpize #安裝PHP擴展都需要執行此腳本 ./configure -enable-memcache -with-php-config=/usr/local/webserver/php/bin/php-config -with-zlib-dir make && make install
安裝完成會有類似下面的提示:
Installing shared extensions:/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/
2、修改PHP的配置文件
#vim /usr/local/webserver/php/etc/php.ini 做一下修改
extension_dir = “/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/“ extension = "memcache.so" #(如果有分號,把分號去掉!)
l如果啓動memcached時提示未找到eaccelerator.so
需要安裝eAccelerator加速器
下載安裝eAccelerator
#wget https://github.com/eaccelerator/eaccelerator/tarball/master
最新的版本是eaccelerator-42067ac.tar.gz
#tar zxvf eaccelerator-42067ac.tar.gz
需要phpize安裝php擴展,如果不明白phpize可以看這個:http://blog.csdn.net/21aspnet/article/details/8193482
需要注意的是需要寫php的安裝路徑對應的phpize下面的php-config也是
# /usr/local/webserver/php/bin/phpize
#./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config
#make
需要注意的是要安裝高版本的,低了編譯不過去。
#makeinstall
需要記住生成的提示信息,要與php配置文件php.ini的extension_dir處填寫的一致
/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/