標籤:
1. 安裝mysql
cd /usr/local/src/
免安裝編譯二進位的包
wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz 解壓
mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql 挪到mysql下並重新命名為mysql
useradd -s /sbin/nologin mysql 增加一個mysql使用者不讓它登入
mkdir -p /data/mysql 要存放mysql資料
cd /usr/local/mysql
chown -R mysql:mysql /data/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 初始化,要運行一些mysql必要的檔案mysql表,資料庫放在/data/mysql
echo $?
]# ls /data/mysql
mysql test
產生了mysql庫
mysql]#ls support-files/
mysql]#cp support-files/mysql.server /etc/init.d/mysqld mysql啟動的指令碼====
放到這裡是為了讓它放到系統的服務列表裡面去
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
vim /etc/init.d/mysqld 需要修改一下設定檔================
加上如下內容
basedir=/usr/local/mysql mysql所在的路徑
datadir=/data/mysql 要存放mysql資料
mysql]# ls support-files/
my-huge.cnf
my-large.cnf
my-small.cnf
cp support-files/my-huge.cnf /etc/my.cnf 也可以開啟my.cnf 修改他的連接埠
vim /etc/my.cnf 裡面有配置
注釋下面兩行,是做主從用的,防止佔用過多資源,
#log-bin=mysql-bin
#server-id = 1
service mysqld start
或者
/etc/init.d/mysqld start mysql啟動指令碼========================
ps aux |grep mysqld
netstat -lnp |grep mysql
ls /data/mysql 查看一下產生的檔案
可以查看一下錯誤記錄檔
2. 安裝apache
wget http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz
tar zvxf httpd-2.2.16.tar.gz
cd httpd-2.2.16
./configure --prefix=/usr/local/apache2 --with-included-apr --with-pcre --enable-mods-shared=most
prefix後面是安裝apache的目錄,apr可以讓我們在多個平台使用apache,pcre叫正則相關的,後面是模組
如果上面出錯就需要安裝一下gcc和apr yum install -y gcc apr
echo $?
make
make install
ls /usr/local/apache2/ 可以查看產生的檔案
啟動apache
/usr/local/apache2/bin/apachectl start
ps aux |grep httpd
【httpd-2.4版本編譯安裝方法】 http://www.aminglinux.com/bbs/thread-7283-1-1.html
2.2用到他內建的apr,2.4要用到系統的apr
【如何指定使用worker/prefork】 http://www.lishiming.net/thread-944-1-1.html
【apache兩種工作模式】http://www.lishiming.net/thread-838-1-2.html
php必須在前面兩者後面安裝
3. 安裝php
wget http://cn2.php.net/distributions/php-5.3.28.tar.gz
tar zxf php-5.3.28.tar.gz
cd php-5.3.28 安裝相關需要的包,繼續執行下面的操作
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6
如果安裝出錯就是缺少一些庫,需要安裝一下 yum install -y libxml2-devel 比如這個,後面都跟-devel
(不確定的時候可以尋找一下 yum list |grep bzip2)很準確
注意,最後到這裡mcrypt 這個包,你需要安裝epel的擴充源才可以看到
不然yum list |grep mcrypt 是搜尋不到mcrypt
centos6
32位epel yum源:wget www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm
64位: www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm
rpm -ivh epel-release-6-8_32.noarch.rpm
然後就可以搜尋yum list |grep mcrypt
centos6
32位epel yum源: www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm
64位: www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm
下載完後
rpm -ivh ‘www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm‘
yum install -y libmcrypt-devel 然後才可以成功安裝這個
make
make install
【php5.5、5.6編譯安裝方法】http://www.aminglinux.com/bbs/thread-7284-1-1.html
=========================================================mysql,apache,php安裝完成了
4. 配置apache結合php
vim /usr/local/apache2/conf/httpd.conf apache的設定檔,裡面和很多模組
ls /usr/local/apache2/modules/ apache模組的路徑
/usr/local/apache2/bin/apachectl -M 查看靜態動態模組
裡面的share(動態)是通過LocadModule控制的
靜態模組就是把這些靜態模組塞到了我們的執行檔案
ls /usr/local/apache2/bin/httpd 裡,把他們變成一個模組,可以理解是核心模組
apache設定檔最後的那個模組LoadModule php5_module modules/libphp5.so
是上面的./configure --with-apxs2=/usr/local/apache2/bin/apxs
這裡完成的操作
====================================
/usr/local/apache2/bin/apachectl -l 只查看靜態核心模組
core.c
http_core.c
mod_so.c
prefork.c 這個是預設的mpm模式,有三種模式,常用的有prefork,worker,event 簡單的區別是prefork使用的是 子進程S給我們的用戶端提供服務。而worker是由進程和線程來提供服務,進程和線程的區別,進程是互相獨立的,兩個或者多個進程相互不受影響,線程直接是互相共用進程的資源的。prefork使用的記憶體多一點,worker少一點,worker支援的並發多一點,event是worker的升級版,支援的並發還要多一點,和worker差不多
(上面是apaceh預設編譯的公用模式,2.0 2.2 預設的是prefork模式,2.4預設是event)
他的模式可以改
httpd-2.2.16]# ./configure --help |grep mpm
--with-mpm=MPM Choose the process model for Apache to use.
MPM={beos|event|worker|prefork|mpmt_os2}
===================================================
/usr/local/apache2/bin/apachectl -t 改了設定檔後,檢測文法也沒有錯誤,然後再重啟=============
vim /usr/local/apache2/conf/httpd.conf
找到
<Directory />
將裡面的Deny改為Allow 要不然訪問不了
Allow from all
</Directory>
將這裡開啟
DocumentRoot "/usr/local/apache2/htdocs"
找到:
#ServerName www.example.com:80
開啟
ServerName localhost:80
找到:
AddType application/x-gzip .gz .tgz
在該行下面添加:
AddType application/x-httpd-php .php
找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
將該行改為:
<IfModule dir_module>
DirectoryIndex index.html index.php 顯示預設的首頁
</IfModule>
/usr/local/apache2/bin/apachectl -t 檢測一下
/usr/local/apache2/bin/apachectl restart 重啟apache================
/usr/local/apache2/bin/apachectl graceful 載入設定檔,這個也可以
5. 測試解析php
直接存取 192.168.11.190
vim /usr/local/apache2/htdocs/1.php 這個路徑是放php檔案的地方============
寫入:
<?php
echo "hello world!";
?>
儲存後,繼續測試:
192.168.11.190/1.php
或者 curl -x192.168.3.129:80 lshfoids.com/1.php 或者index.html
<?php
phpinfo(); 看php的設定檔
?>
載入一下他的設定檔
ls /usr/local/php/etc
cd /usr/local/src/php-5.3.28
ls
php.ini-production 複製這個檔案
cp php.ini-production /usr/local/php/etc/php.ini
/usr/local/apache2/bin/apachectl restart 重啟一下,然後就可以顯示出來了
================
有時候沒有web頁面,怎麼通過命令列去檢驗和測試php
cd /usr/loacl/php/
/usr/local/php/bin/php -m 可以列出他所有載入的模組
其實apache用的是這個檔案 /usr/local/apache2/modules/libphp5.so = /usr/local/php/bin/php
libphp5.so是apache調用的模組,/bin/php是一個執行檔案,其實他們是一個東西,能實現一樣的功能
/usr/local/php/bin/php -i |less 相當於phpinfo()和他看到的一樣,
如果進入到bin下,直接 ./bin/php -i |less
搜尋php的設定檔
/usr/local/php/bin/php -i |grep -i ‘Configuration File‘ 查一下他的路徑
如果有提示,就改一下他的時間就可以了
vim /usr/local/php/etc/php.ini
date.timezone = ‘Asia/Chongqing‘
/usr/local/php/etc/php.ini php的設定檔=========
/usr/local/php/bin/php -v 看他的版本
查看./configure 的時候都加了什麼選項 查看php的
./bin/php -i |head
查看apache編譯過的選項
cat /usr/local/apache2/build/config.nice
mysql編譯參數:
# cat /usr/local/mysql/bin/mysqlbug|grep configure
ldd 是查詢這個檔案都依賴於哪些庫
ldd /usr/local/apache2/modules/libphp5.so
==============查看nginx,apache,php,mysql的編譯參數
nginx編譯參數:
#/usr/local/nginx/sbin/nginx -V
2、apache編譯參數:
# cat /usr/local/apache/build/config.nice
3、php編譯參數:
# /usr/local/php/bin/php -i |grep configure
4、mysql編譯參數:
# cat /usr/local/mysql/bin/mysqlbug|grep configure
第一部分安裝mysql -apache -php