以前在Debian下安裝軟件都是使用軟件源安裝的,雖然步驟較少,但仍不能理解Linux下安裝軟件的具體細節,于是決定手動編譯安裝各種軟件,以解心中困惑
由于國內租用虛擬主機或VPS 價格都較高,而虛擬主機雖價格適中,但不利于學習各種系統,綜上考慮還是從網上購買國外VPS,試用了幾天,測試效果還是比較滿意. 在使用時沒有寫下編譯安裝Nginx-1.0.5 + MySQL-5.5.15 +PHP-5.3.8,現在決定寫下此過程,以供今后參考。
由于提供的VPS系統中沒有Debian 6.0 ,只能選擇使用5.0或4.0的版本,沒法只好安裝5.0的Debian,以下為安裝步驟。
首先下載本文要用到的相關軟件:
下載在Linux公社的1號FTP服務器里,下載地址:
FTP地址:ftp://www.linuxidc.com
用戶名:www.linuxidc.com
密碼:www.muu.cc
在 2011年LinuxIDC.com\9月\Debian下Nginx-1.0.5 + MySQL-5.5.15 +PHP-5.3.8編譯安裝相關文件
下載方法見 http://www.linuxidc.net/thread-1187-1-1.html
一. 檢查系統環境
1. netstat -ntlp 查看系統中運行哪些網絡服務,不需要用的都可以關掉,比如exim4(郵件服務程序), aptitude purge exim4-base exim4-config exim4-daemon-light .
2. 安裝編譯環境,debian 5系統發行版默認沒有安裝gcc等工具。需安裝一下
aptitude install build-essential
二. 編譯安裝相關組件
1.安裝zlib,openssl等組件
unzip -x zlib125.zip
cd zlib-1.2.5
./configure --prefix=/usr
make && make install
tar zxvf openssl-0.9.8r.tar.gz
cd openssl-0.9.8r
make && make install
2.安裝 nginx
tar zxvf pcre-8.13.tar.gz
tar zxvf nginx-1.0.5.tar.gz
cd nginx-1.0.5
./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin --with-http_ssl_module --with-http_sub_module --with-http_flv_module --with-http_stub_status_module --with-zlib=../zlib-1.2.5 --with-openssl=../openssl-0.9.8r --with-pcre=../pcre-8.13make && make install
配置開機啟動
cp nginx.txt /etc/init.d/nginx
chmod + x /etc/init.d/nginx
chkconfig nginx on
3.安裝 mysql ,安裝mysql-5.5.15需安裝cmake ,
tar zxvf cmake-2.8.5.tar.gz
cd cmake-2.8.5
./bootstrap
make
make install
在安裝最后一步時可能會出錯,解決辦法是指定安裝位置make install DESTDIR=/usr/local.
建立mysql安裝目錄及數據目錄
mkdir -p /usr/local/mysql
mkdir -p /data/mysql
建立mysql用戶及組
groupadd mysql
useradd -d /usr/local/mysql -g mysql -s /usr/sbin/nologin mysql
設定目錄mysql目錄屬主及權限
chown mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data/mysql
chmod 755 /usr/local/mysql
chmod -R 755 /data/mysql
用cmake編譯安裝mysql
cd mysql-5.5.15
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql
編譯過程中可能會出錯,需安裝libncurses5-dev及bison
aptitude install libncurses5-dev bison
然后刪除CMakeCache.txt
rm CMakeCache.txt
繼續編譯通過
make
make install
復制配置文件my.cnf
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
chown mysql.mysql /etc/my.cnf
chmod 755 /etc/my.cnf
配置開機啟動
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig mysqld on
啟動mysql并設置密碼
/etc/init.d/mysqld start
/usr/local/mysql/bin/mysqladmin -u root password '新密碼'
OK,mysql配置完成。
4.安裝php
編譯gd庫,這個在搭建discuz論壇時需用到
(1)安裝libpng
tar zxvf libpng-1.5.4.tar.gz
cd libpng-1.5.4
./configure
make
make install
備注: libpng默認安裝位置/usr/local,若指定安裝在/usr/local/png,則編譯gd時會提示找不到png.h等文件.
(2)安裝freetype
tar zxvf freetype-2.4.6.tar.gz
cd freetype-2.4.6
./configure --prefix=/usr/local/freetype
make
make install
(3)安裝jpeg
tar zxvf jpegsrc.v8c-tar.gz
cd jpeg-8c
./configure --prefix=/usr/local/jpeg
make
make install
(4) 安裝libxml2
tar zxvf libxml2-2.7.8.tar.gz
cd libxml2-2.7.8
./configure --prefix=/usr/local/libxml2
make
make install
(5)安裝GD
tar zxvf pierrejoye-gd-libgd-GD_2_0_33.tar.gz
cd pierrejoye-gd-libgd-GD_2_0_33
./configure --prefix=/usr/local/gd --with-png=/usr/local --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/jpeg
make
make install
(6)編譯PHP
./configure \
--prefix=/usr/local/new_php \
--with-config-file-path=/usr/local/new_php/etc \
--enable-fpm \
--with-fpm-user=nobody \
--with-fpm-group=nobody \
--with-libxml-dir \
--with-openssl \
--with-zlib \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-mhash \
--enable-mbstring \
--with-mcrypt \
--with-mysql \
--with-mysql-sock=/tmp/mysqld.sock \
--with-mysqli=/usr/bin/mysql_config \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm
make
make test
make install
復制php.ini到配置文件目錄及php-fpm 開機啟動
cp php.ini-production /usr/local/php/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
這時候還不能使用/etc/init.d/php-fpm start啟動,需修改一下php-fpm配置文件才可以,配置文件位置php安裝目錄 etc 目錄下,默認有個參考文件.
cp php-fpm.conf.default php-fpm.conf
nano php-fpm.conf
,pm.start_servers = 20
,pm.min_spare_servers = 5
,pm.max_spare_servers = 35
去掉以上三項前面的逗號,這時再使用/etc/init.d/php-fpm start 即可啟動。
Memcahed構建與安裝php memcache
1.memcached需用到libevent這個庫
tar zxvf libevent-2.0.12-stable.tar.gz
cd libevent-2.0.12-stable
./confiugre --prefix=/usr
make && make install
2.安裝memcached
tar zxvf memcached-1.4.6.tar.gz
cd memcached-1.4.6
./configure --with-libevent=/usr
make && make install
在make install這步時出錯了,竟不能安裝,查看了錯誤原因,原來是/usr/local/man目錄中已存在一個man1,于是改名man2,再次make install成功.
3.安裝 php memcache擴展
tar xvf memcache-3.0.6.tgz
cd memcache-3.0.6
/usr/local/php/bin/phpize
./configure --enable-memcache --with-php-conf=/usr/local/php/bin/php-config --with-zlib-dir=/usr
make
make test
make install
安裝完成后,提示
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626
配置php.ini文件
在文件最后添加
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626"
extension=memcache.so
查看php是否成功加載memcache.so
/usr/local/php/bin/php -m
[PHP Modules]
Core
ctype
date
dom
ereg
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
memcache
mhash
mysql
mysqli
openssl
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
sockets
SPL
SQLite
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
zlib
[Zend Modules]
在15行看到了memcache,已成功加載
啟動memcached服務端程序
memcached -d -m 64 -u www-data -l localhost -p 11211 -c 640 -P /tmp/Memcached.pid
各個參數的意義
-d選項是啟動一個守護進程,
-m是分配給Memcached使用的內存數量,單位是MB,
-u是運行Memcache的用戶,我這里是root,
-l是監聽的服務器IP地址,
-p是設置Memcache監聽的端口,最好是1024以上的端口,
-c選項是最大運行的并發連接數,默認是1024,按照你服務器的負載量來設定,
-P是設置保存Memcache的pid文件
配置memcached開機啟動
cp memcached.txt /etc/init.d/memcached
chmod + x /etc/init.d/memcached
chkconfig memcached on