虛擬機安裝
- 使用鏡像安裝ISO
- 啟動虛擬機轉(zhuǎn)換網(wǎng)絡(luò)橋接模式
-
ifconfig
查看IP - 使用mac終端 或者 window ssh連接Linux
- MAC連接如下:
ssh username@ip
Ubuntu 下的 apt-get 更新
- 在使用之前,需要使用
apt-get update
進(jìn)行資源目錄的更新怔昨,注意這里是網(wǎng)絡(luò)資源目錄更新雀久。 -
apt-get upgrade
是進(jìn)行所安裝軟件的更新
下載LAMP環(huán)境安裝包
- Mysql
- Php http://www.php.net
注意:PHP7目前會報錯,顯示--with-mysql
是未定義的options選項朱监。
- Php http://www.php.net
下載依賴包
公共依賴包
cmake // 用來預(yù)編譯MySQL
make // 源碼預(yù)編譯
gcc // GNU c編譯器
g++ // GNU c++編譯器
libxml2-dev // 編譯安裝libxml2會用此依賴包
libxml2
build-essential // 編譯程序的依賴包 作用:提供編譯程序必須軟件包的列表信息
bison // 安裝Mysql會用到
build-depgcc // Ubuntu下的gcc安裝
libncurses5-dev // 安裝libncurses5的依賴包
re2c // PHP語法分析器
libmcrypt // 算法加密庫
autoconf // 自動配置,phpize會用到
Apache依賴包
apr // Apache可移植運行庫
apr-until //
pcre // 一個Perl庫
編譯安裝
Apache
- 安裝apr
解壓后進(jìn)入目錄,執(zhí)行如下命令
./configure --prefix=/usr/local/apr
make && make install
- 安裝apr-until
解壓后進(jìn)入目錄原叮,執(zhí)行如下命令
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
- 安裝pcre
解壓后進(jìn)入目錄赫编,執(zhí)行如下命令
./configure --prefix=/usr/local/pcre
make && make install
- 安裝Apache
解壓后進(jìn)入目錄,執(zhí)行如下命令
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
make && make install
有時用tar解壓.錯誤如下:
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
原因:該源碼包在下載過程中被破壞或者未使用想對應(yīng)后綴的解壓命令奋隶。
解決方法:重新下載擂送。
- 配置Apache
進(jìn)入 /usr/local/apache/conf 目錄 備份http.conf 為 http.conf.bak
vi http.conf
將187行 ServerName 前#去掉,更改為 ServerName 127.0.0.1:80 保存退出唯欣;
進(jìn)入 apache/bin 目錄 apachectl 為服務(wù)啟動腳本嘹吨,將此文件 cp 到 /etc/init.d/httpd;
執(zhí)行命令:sudo service httpd start 通過瀏覽器訪問 localhost 即可看見 it Work 即可境氢;
如果出現(xiàn)未啟動情況請查看80端口是否被其他程序占用蟀拷。
MySQL 安裝編譯
創(chuàng)建用戶和用戶組
groupadd mysql
useradd -g mysql- s "/sbin/nologin" // 防止以mysql用戶登錄系統(tǒng)
進(jìn)入mysql目錄碰纬,執(zhí)行cmake
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
-DCMAKE_INSTALL_PREFIX=安裝根目錄
-DCMAKE_INSTALL_PREFIX=unix套接字目錄
-DDEFAULT_CHARSET=默認(rèn)字符集
-DDEFAULT_COLLATION=默認(rèn)編碼
-DWITH_EXTRA_CHARSETS=額外的編碼,請使用ALL來編譯问芬。
-DWITH_MYISAM_STORAGE_ENGINE=1 編譯myisam存儲引擎悦析,默認(rèn)的存儲引擎,不加也可以
-DWITH_INNOBASE_STORAGE_ENGINE=1 支持InnoDB存儲引擎此衅,這個也是默認(rèn)安裝的
-DWITH_READLINE=1 使用readline功能
-DENABLED_LOCAL_INFILE=1 可以使用load data infile命令從本地導(dǎo)入文件
-DMYSQL_DATADIR=數(shù)據(jù)庫 數(shù)據(jù)目錄
-DDOWNLOAD_BOOST=1 // 下載boost强戴,這個用來編譯高版本的Mysql,沒有會報錯,也可以進(jìn)行apt-get
-DWITH_BOOST=/usr/local/boost // 使用boost
這個問題我重新安裝一次就沒有了
debian 系統(tǒng)下安裝挡鞍,需要把系統(tǒng) Swap 設(shè)到最大的 512M(linode 默認(rèn)的 Swap 是 256M骑歹,最大是 512M),不然編譯時會報 “g++: internal compiler error: Killed (program cc1plus)” 的錯誤:(
編譯安裝
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr/local/libpng --with-zlib-dir=/usr/local/zlib --enable-mbstring --enable-xml --enable-sockets
make && make install
配置mysql
安裝默認(rèn)數(shù)據(jù)庫
cd /usr/local/mysql/scripts
初始化數(shù)據(jù)庫
./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
復(fù)制配置文件
cd /usr/local/mysql/support-files
cp my-medium.cnf /etc/my.cnf cpmysql.server /etc/init.d/mysqld
修改配置配置文件
vi /etc/init.d/mysqld /*編輯basedir=和datadir=*/
basedir=/usr/local/mysql datadir=/home/mysql servicemysqld start
提示:出國一次pid的錯誤墨微,解決方式是重新安裝道媚。
PHP安裝編譯
可以查看一下INSTALL文件,里面有安裝說明欢嘿。
說明:此次安裝未在編譯PHP安裝模塊衰琐,主要是可以通過phpize來實現(xiàn)編譯后PHP的擴展安裝;如果有需要炼蹦,也可以實現(xiàn)在前期編譯前安裝相應(yīng)的擴展模塊羡宙,只需要按正常順序進(jìn)行解壓,配置掐隐,編譯即可狗热,在編譯PHP時加入相應(yīng)的OPtions參數(shù)即可,但需要注意的是依賴包問題虑省。
開始編譯
進(jìn)入PHP解壓目錄
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with--mysql=/usr/local/mysql
--with-apxs2=/usr/local/apache/bin/apxs // 掛在apache上匿刮,并且開啟PHP模塊
--with-mysql=/usr/mysql/mysql // PHP的擴展模塊mysql
make && make install
復(fù)制配置文件
cp php.ini-development/usr/local/php/lib/php.ini
修改php.ini 文件 中搜索 date 將默認(rèn)時區(qū)修改為 Asia/Shanhai
修改http.conf文件
向 http.conf 文件中加入
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
搜索DirectoryIndex 修改為
index.html index.php index.htm
在Apache的htdoc目錄中建立文件
mv index.html index.php
vim index.php
<?php
echo phpinfo();
?>
安裝完成進(jìn)行測試
瀏覽器打開對應(yīng)IP即可
編譯PHP擴展
GD庫的安裝
GD依賴包有很多,需要在安裝之前全部安裝
注意:安裝過程中可能還會需要相應(yīng)的依賴包探颈,選擇安裝
libfreetype6-dev
libfontconfig1-dev
libgpm-dev
libjpeg62
libjpeg62-dev
libpng12-0
libpng-12-0-dev
libfeetype6
libfreetype6-dev
libxml2
libxml2-dev
zlib1g
zlib1g-dev
libcurl3
libcur3-dev
libncurses5-dev
libperl-dev bison
libpng
tar -xf libpng-1.6.16.tar.gz
cd libpng-1.6.16
./configure
make
make install
jpegsrc
mkdir /usr/local/jpeg9
mkdir /usr/local/jpeg9/bin
mkdir /usr/local/jpeg9/lib
mkdir /usr/local/jpeg9/include
mkdir -p /usr/local/jpeg9/man/man1
cd /usr/local/src/
tar -zxvf jpegsrc.v9a.tar.gz
cd jpeg-9a/
./configure --prefix=/usr/local/jpeg9/ --enable-shared --enable-static
make && make install
freetype
tar -xf freetype-2.5.5.tar.gz
cd freetype-2.5.5
./configure
make && make install
這是提示找不到libpng的安裝位置熟丸,所以需要將libpng的bin目錄配置到環(huán)境變量中
vi /etc/profile
LIB_PNG=/usr/local/libpng/bin
PATH=$LIB_PNG:$PATH
export PATH
生效:./etc/profile
GD庫
進(jìn)入安裝的源碼包中,找到ext擴展包目錄伪节,進(jìn)如相應(yīng)擴展包目錄 或者 自己下載擴展包光羞,進(jìn)入相應(yīng)擴展包目錄
我的目錄如下:
cd /usr/local/src/php-5.6.19/ext/gd
使用phpize生成configure
/usr/local/php/bin/phpize
使用 configure 安裝配置
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
修改php.ini,在該文件的 Dynamic Extensions 模塊下添加一行
extension=gd.so
檢測gd庫安裝情況
/usr/local/bin/php -m
/usr/local/bin/php -m |grep gd
安裝memcache
安裝memcache之前需要安裝libevent支持
wget http://down1.chinaunix.net/distfiles/libevent-2.0.21-stable.tar.gz
tar -zxvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure --prefix=/usr/local/libevent
make && make install
接下來安裝擴展包
下載memcache
解壓
進(jìn)入目錄
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
make
做到這一步應(yīng)該會報錯怀大,未報錯直接跳過纱兑。錯誤內(nèi)容大致如下:
/usr/local/src/memcache-2.2.3/memcache.c: 在函數(shù)‘php_mmc_connect'中:
/usr/local/src/memcache-2.2.3/memcache.c:1902: 錯誤:提供給函數(shù)‘zend_list_insert'的實參太少
/usr/local/src/memcache-2.2.3/memcache.c:1919: 錯誤:提供給函數(shù)‘zend_list_insert'的實參太少
/usr/local/src/memcache-2.2.3/memcache.c: 在函數(shù)‘zif_memcache_add_server'中:
/usr/local/src/memcache-2.2.3/memcache.c:1975: 錯誤:提供給函數(shù)‘zend_is_callable'的實參太少
/usr/local/src/memcache-2.2.3/memcache.c:2003: 錯誤:提供給函數(shù)‘zend_list_insert'的實參太少
/usr/local/src/memcache-2.2.3/memcache.c: 在函數(shù)‘zif_memcache_set_server_params'中:
/usr/local/src/memcache-2.2.3/memcache.c:2059: 錯誤:提供給函數(shù)‘zend_is_callable'的實參太少
/usr/local/src/memcache-2.2.3/memcache.c: 在函數(shù)‘mmc_find_persistent'中:
/usr/local/src/memcache-2.2.3/memcache.c:2159: 錯誤:提供給函數(shù)‘zend_list_insert'的實參太少
/usr/local/src/memcache-2.2.3/memcache.c:2177: 錯誤:提供給函數(shù)‘zend_list_insert'的實參太少
make: *** [memcache.lo] 錯誤 1
糾錯方式:
根據(jù)錯誤嘉裤,進(jìn)行修改:
vi memcache.c
將所有的:zend_list_insert(pool, le_memcache_pool);
改為:zend_list_insert(pool, le_memcache_pool TSRMLS_CC);
將所有的:zend_list_insert(mmc, le_pmemcache);
改為:zend_list_insert(mmc, le_pmemcache TSRMLS_CC);
將所有的:if (!zend_is_callable(failure_callback, 0, NULL))
改為:if (!zend_is_callable(failure_callback, 0, NULL, NULL))
vim 修改方式
全部替換
%s/old/new/g
修改完成后蚀之,重新make編譯:
make && make install
成功則顯示
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
接下來修改php.ini配置文件尊剔,增加extension=memcache.so即可,重啟服務(wù)器
注意:其他擴展庫依據(jù)以上步驟即可
虛擬機設(shè)置
編輯apache服務(wù)器的配置文件,開啟擴展模塊vhost,即去除#號即可
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
http.conf 同級目錄下公你,extra目錄,vim httpd-vhosts.conf
<Directory "/usr/local/apache/docs/wbl">
Options Indexes
AllowOverride None
Require all granted
</Directory>
<VirtualHost 172.2.2.33:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/local/apache/docs/wbl"
ServerName wbl.wbl.com
ErrorLog "logs/wbl.wbl.com-error_log"
CustomLog "logs/wbl.wbl.com-access_log" common
</VirtualHost>
主機電腦設(shè)置庶骄。我的是OSX系統(tǒng)
vim /etc/hosts
加入
172.2.2.33 wbl.wbl.com
重啟Apache即可澳眷,直接在網(wǎng)頁上查看即可