歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> LAMPA搭建

LAMPA搭建

日期:2017/3/3 11:45:51   编辑:Linux技術
LAMP 指的是Linux Apache mysql php ,安裝到Linux上,搭建一個環境來運行php腳本語言
(1)安裝mysql (3306端口)
cd /usr/local/src/    進入目錄
 wgethttp://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.31-linux-glibc2.5-i686.tar.gz     下載文件
 tar zxvf mysql-5.6.31-linux-glibc2.5-i686.tar.gz    解壓文件
 mv mysql-5.6.31-linux-glibc2.5-i686 /usr/local/mysql    移動並重命名
 cd ../mysql/    進入到文件夾內
 需要先建立mysql用戶
 useradd -s /sbin/nologin -M mysql 沒有家目錄,不需要登陸
 mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql    建立文件夾並修改權限
 ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/    初始化.用戶為mysql , 安裝路徑在/data/mysql/
 初始化過程中,會提示錯誤,是缺少libaio , 直接安裝
 yum install -y libaio*
 cp my.cnf /etc/my.cnf    cp配置文件
 cp support-files/mysql.server  /etc/init.d/mysqld  ; chmod 755 /etc/init.d/mysqld cp啟動腳本並修改文件屬性
 vim /etc/init.d/mysqld 修改啟動腳本  datadir=/data/mysql  basedir=/usr/local/mysql
 chkconfig --add mysqld 啟動腳本加入系統服務
 chkconfig mysqld on    設置為開機啟動
 service mysqld start    啟動mysql
 netstat -lnp |grep mysql        查看mysql端口.一般為3306

(2)安裝Apache (httpd 80端口)
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.31.tar.gz    下載
tar zxvf httpd-2.2.31.tar.gz    解壓
cd httpd-2.2.31    進入
 
./configure \
--prefix=/usr/local/apache2 \ 
--with-included-apr \    
--enable-so \ 
--enable-deflate=shared \ 
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre
deflate expires rewrite =shared 已動態共享的方式運作 so 啟用DSO deflate 共享的方式編譯deflate pcre 正則相關的庫
常常會遇到一些錯誤
configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
解決方案: 將APR和APR-util源碼下載,解壓放到httpd-2.4.3/srclib裡面,並去除版本號
wget 
tar zxvf apr-1.5.2.tar.gz
cp -r apr-1.5.2 httpd-2.4.20/srclib/apr
wget 
tar zxvf apr-util-1.5.4.tar.gz
cp -r apr-util-1.5.4 httpd-2.4.20/srclib/apr-util
錯誤
configure: error: in `/usr/local/src/httpd-2.4.20/srclib/apr':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
configure failed for srclib/apr
這是因為沒有安裝編譯器.一般使用GCC,直接安裝
yum install gcc
可能需要的包
yum install -y zlib-devel pcre pcre-devel apr apr-devel
 make && make install
 /usr/local/apache2/bin/apachectl start
查看模塊 static 靜態加載 shared 動態共享加載
/usr/local/apache2/bin/apachectl -M    (-l 查看靜態模塊) (-t 查看配置文件是否有語法錯誤)
重啟Apache
/usr/local/apache2/bin/apachectl restart
重新加載Apache(配置文件)
/usr/local/apache2/bin/apachectl graceful
關於靜態模塊prefork.c的模式
有worker prefork event
prefork 主進程 子進程
worker 主進程 子進程 子進程下還有線程(高並發時占優勢,線程占內存少)
event 是worker的升級版.保持長連接時,性能比worker好
重啟錯誤
httpd: apr_sockaddr_info_get() failed for bogon
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
沒有在 /etc/httpd/conf/httpd.conf 中設定 ServerName。所以apache會用主機上的名稱來取代,首先會去找 /etc/hosts 中有沒有主機的定義。所以要解決這個問題可以設定httpd.conf文件中的 ServerName,如下: (1) ServerName localhost:80 或者在 /etc/hosts 中填入自己的主機名稱 bogon,如下: (2)127.0.0.1 bogon(3) 安裝PHP
wgethttp://cn2.php.net/distributions/php-5.6.22.tar.gz    下載
tar zxvf php-5.6.22.tar.gz    安裝
cd php-5.6.22    進入
./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 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel libmcrypt-devel libjpeg* 
 make &&make install
 cp php.ini-production /usr/local/php/etc/php.ini    cp配置文件
編譯的時候遇到的錯誤
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
編譯的時候添加 --disable-fileinfo 據說是內存小於1G引起的
--with-apxs2=/usr/local/apache2/bin/apxs 一個自動幫助安裝擴展模塊的工具
(4)測試PHP解析
找到
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.htm index.php
</IfModule>
檢測Apache配置是否有問題
/usr/local/apache2/bin/apachectl -t
沒問題重新加載配置文件
/usr/local/apache2/bin/apachectl graceful
用info.php可以查看曾經是在怎樣編譯php的
<?php
phpinfo();
?>
注: Apache查看 */apache2/build/config.nice
mysql查看 */mysql/bin/mysqlbug
Copyright © Linux教程網 All Rights Reserved