標籤:
本文參考了 http://www.tuicool.com/articles/3iUNFnA 並在細節上做了一些補充。使安裝過程更加順暢。
首先要說的是ubuntu 上操作需要加sudo命令,所以在以下的命令上都要以sudo開始。
先安裝一些依賴資源gcc g++ openssl libssl-dev (RedHat、centos才是openssl-devel)
sudo apt-get install openssl sudo apt-get install libssl-devsudo apt-get install gcc g++
nginx安裝
nginx源碼包: nginx ,密碼:bi79
pcre源碼包: pcre ,密碼:uvqd
zlib源碼包: zlib ,密碼:i6pf
下載完成後,以我的為例,放入/usr/local/src中,將三個源碼包
tar -zxvf 源碼包
進行解壓。
然後進入nginx的解壓目錄。
cd nginx目錄
配置裡面的--prefix制定了nginx的安裝目錄,--conf-path制定了nginx設定檔的目錄,這裡的--with-pcre=後面的目錄是pcre的源碼包目錄,--with-zlib=後面的是zlib源碼包的路徑。
sudo ./configure --prefix=/usr/local --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=../pcre-8.36 --with-zlib=../zlib-1.2.8
sudo make
sudo make install
啟動nginx
$/usr/local/nginx/nginx#幾個常用的nging命令$/usr/local/nginx -t #測試預設為值的設定檔是否ok$/usr/local/nginx -c /etc/nginx.conf #指定nginx解析的設定檔$/usr/local/nginx -s stop|quit|reload|reopen #停止或者重啟nginx
mysql安裝
mysql源碼包: mysql ,密碼:7qyu
mysql安裝使用的是cmake,沒有的自安裝,
sudo apt-get install cmake
安裝ncurses-devel,在ubuntu下面是
sudo apt-get install libncurses5-dev
設定MYSQL使用者和使用者組
sudo groupadd mysqlsudo useradd -r -g mysql mysql
建立mysql目錄
sudo mkdir -p /usr/local/mysqlsudo mkdir -p /data/mysqldb
解壓下載的mysql源碼
tar -zxvf 源碼包
進入解壓的mysql目錄
cd mysql目錄
下民命令中的-DCMAKE_INSTALL_PREFIX=後面是mysql的安裝目錄,-DMYSQL_UNIX_ADDR=後面是監聽通訊端的路徑,預設為/tmp/mysql.sock,-DDEFAULT_CHARSET設定伺服器字元集,預設是latin1,-DMYSQL_DATADIR設定mysql資料的儲存目錄。
sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
結尾工作
修改mysql目錄所屬使用者
cd /usr/local/mysqlsudo chown -R mysql:mysql .
修改mysql資料庫檔案目錄所屬使用者
cd /usr/local/mysqlsudo chown -R mysql:mysql .
建立my.cnf檔案
cp /usr/local/mysql/support-files/my-deault.cnf /etc/my.cnf
編輯/etc/my.cn,添加下面的配置項
[mysqld]port=3306socket=/usr/local/mysql/mysql.sockdatadir=/data/mysqldbcharacter_set_server=utf8sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql]socket=/usr/local/mysql/mysql.sock[mysqladmin]socket=/usr/local/mysql/mysql.sock
將mysql添加到服務
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldservice mysqld status
如果上面可以顯示MYSQL資訊* MySQL is not running則添加服務ok
初始化mysql資料庫
cd /usr/local/mysqlsudo scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
執行完上面的命令,查看/data/mysqldb目錄中的內容,如果產生了內容說明初始化成功。
啟動MYSQL
service mysqld startps aux | grep mysqld
如果上面的命令之後可以看到mysqld的進程說明啟動mysql成功
修改mysql root使用者密碼
cp /usr/local/mysql/bin/mysql /usr/bin/mysqlcp /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladminmysqladmin -u root password ‘123456‘mysql -u root -p#輸入123456密碼
執行晚上面的命令,如果看到Welcome to the MySQL monitor....說明mysql安裝、啟動、串連ok。
注意事項
由於這裡設定了mysql相關目錄都是mysql:mysql,所以如果出現問題可以嘗試sudo解決,很可能是許可權的問題。
mysql安裝完之後啟動伺服器可能還會有很多問題,下面列幾個可能的問題:
設定檔的問題,mysql載入設定檔 my.cnf 的時候有個預設順序:
a. /etc/my.cnfb. /etc/mysql/my.cnfc. /usr/local/mysql/my.cnfd. ~/my.cnf
因此要是出現一些很奇怪的不好解決的問題一定要先看看是不是載入了你想要mysql載入的設定檔。
php安裝
php源碼包: php-5.6.13.tar.gz
freetype源碼包: freetype ,密碼:m5pc
freetype產生驗證碼的時候會用到(具體的就是imagettftext這個函數)
準備工作
- freetype安裝——產生驗證碼可能會用到
tar -xvf freetype-2.4.0.tar.bz2cd freetype-2.4.0./configure --prefix=/usr/local/freetypemakemake install
- 安裝curl、png、mcrypt
sudo apt-get install curl libcurl3 libcurl3-devsudo apt-get install libpng3 libpng3-devsudo apt-get install libmcrypt4 libmcrypt-devsudo apt-get install libxml2-dev
下面的安裝配置裡面。/usr/local/mysql為你安裝mysql的目錄。
sudo ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --enable-pcntl --enable-mysqlnd --enable-opcache --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-shmop --enable-zip --enable-ftp --enable-soap --enable-xml --enable-mbstring --with-mysql=/usr/local/mysql -with-pdo-mysql=/usr/local/mysql --with-pcre-regex --with-iconv --with-zlib --with-mcrypt --with-gd --with-openssl --with-mhash --with-xmlrpc --with-curl --with-imap-ssl --enable-pdo --with-freetype-dir=/usr/local/freetype
sudo make
sudo make install
php配置
- php.ini管理 看看
/usr/local/php/etc下面是否又設定檔,有的話cp一份命名為php.ini,沒有的話將源碼包裡面的php.ini*複製一份過來命名為php.ini
- php-fpm.conf管理 php-fpm.conf一般在安裝目錄的/usr/local/php/etc/php-fpm.conf.default這個位置
cd /usr/local/php/etccp php-fpm.conf.default php-fpm.conf
修改php-fpm.conf中的內容,主要是綁定的ip、連接埠或者unix socket,下面是我的配置,可以適當參考
pid = run/php-fpm.piderror_log = log/php-fpm.loglog_level = noticedaemonize = yesrlimit_files = 1024user = nobodygroup = nobodylisten = 127.0.0.1:9000pm = dynamicpm.max_children = 5pm.start_servers = 2pm.min_spare_servers = 1pm.max_spare_servers = 3
啟動php-fpm
$cp /usr/local/php/sbin/php-fpm /usr/bin/php-fpm$php-fpm -t #測試預設設定檔是否ok$php-fpm$ps aux | grep php-fpm
如果看到php-fpm的進程說明php-fpm啟動成功。 php-fpm的結束
$kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
完!!!
ubuntu 14.04 nginx + mysql + php源碼安裝