一.部署LAMP基本架構php
1.L(linux)A(apache)M(mysql)P(php)html
2.穩定版本(mysql5.1,php5.3,apache2.2)mysql
3.安裝順序,mysql-->apache-->phplinux
4.將所需的壓縮包放指定目錄。sql
(1)編譯原理:主要爲了讓C語言開發的包編譯成二進制文件。數據庫
(2)系統是區分64位與32位 ,對應的安裝包apache
(3)查看linux系統位,uname –a。i686是32 x86是64。vim
5.安裝mysql架構
(1)解壓mysql壓縮包app
tar zxvf mysql.tar.gz
(2)將mysql目錄移動/usr/下。
mv mysql目錄 /usr/local/mysql
(3)在mysql目錄下,建立目錄,做爲datadir(數據目錄)
mkdir /data/mysql
(4)建立mysql用戶,不容許登錄,不建立家目錄。
useradd -s /sbin/nologin -M mysql
(5)將/data/mysql/目錄所屬組所屬主給mysql用戶。
chown -R mysql:mysql /data/mysql/
(6)將配置文件存放到/etc/my.conf覆蓋。
cp /mysql目錄/support-files/my-large.cnf /etc/my.cnf
(7)修改配置文件
vim進入/etc/my.conf
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [mysqld] port = 3306 socket = /usr/local/mysql/mysql.sock datadir = /data/mysql pid-file = /data/mysql/mysql.pid # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M
------------------------------------------
經常使用參數:
Port #監聽端口
Socket #通訊方式
Key_buffer_size #mysql內存使用大小
Log-bin=mysql-bin #記錄二進制日誌,註釋掉。
Binlog_format=mixed #日誌相關參數,註釋掉。
Server_id=1 #主從複製參數,註釋掉。
(8)將服務的啓動腳本放入/etc/init.d/下。
cp /mysql目錄/support-files/mysql.server /etc/init.d/mysqld
(9)修改啓動文件。
vi /etc/init.d/mysqld
# The following variables are only set for letting mysql.server find things. # Set some defaults mysqld_pid_file_path= if test -z "$basedir" then basedir=/usr/local/mysql bindir=/usr/local/mysql/bin
mysqld_pid_file_path=/data/mysql/master.pid
------------------------------------------
basedir #定義程序所在路徑
bindir #定義數據庫啓動路徑
(10)在mysql目錄下初始化mysql服務,看到兩個ok就沒問題。
mysql]#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
報錯1:Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解決:yum install –y libai* 報錯2:Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory 解決:yum install –y numactl-*
(11)查看是否生成mysql,test。
mysql]#ls /data/mysql
(12)啓動mysql。
mysql]#/etc/init.d/mysqld start
報錯1:Starting MySQL.... ERROR! The server quit without updating PID file (/data/mysql/localhost.localdomain.pid). 解決:[root@localhost ~]# cd /usr/local/mysql [root@localhost mysql]# chown -R mysql.mysql . [mysql@localhost mysql]#scripts/mysql_install_db
(13)查看mysql進程。
ps aux|grep mysql
(14)開啓mysql命令終端Mysql>。
/usr/local/mysql/bin/mysql
報錯1:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 解決:ln -s /usr/local/mysql/mysql.sock /tmp/mysql.sock
6.apache安裝
(1)解壓。
tar zxf httpd-2.2.16.tar.gz
(2)進入解壓後目錄。
cd httpd-2.2.16
(3)安裝gcc
yum -y gcc
(4)編譯安裝。
./configure --prefix=/usr/local/apache2 --with-included-apr --with-pcre --enable-mods-shared=most
--whit-included-apr
注:可進行平臺移植,動態運行庫
--enable-mods-shared=most 注:enable靜態模塊,與apache一通執行,佔用內存cpu,速度快 注:shared動態模塊,可調用執行
注:enable-mods-shared=all 安裝全部動態模塊,不用能夠手動禁掉
報錯1:在http2.4編譯安裝時會出現報錯 configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/. 解決:在Apache官網下載 兩個ARP插件覆蓋到http文件內 # cd /usr/local/src<br data-filtered="filtered"># wget http://apache.fayea.com/apr/apr-1.5.2.tar.bz2 # wget http://apache.fayea.com/apr/apr-util-1.5.4.tar.bz2 # tar -jxvf apr-util-1.5.4.tar.bz2 # tar -jxvf apr-1.5.2.tar.bz2 # cp -rf apr-1.5.2 /usr/local/src/httpd-2.4.18/srclib/apr # cp -rf apr-util-1.54 /usr/local/src/httpd-2.4.18/srclib/apr 報錯2:configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/ 解決:yum -y install pcre-devel
(5)編譯。測試echo $?
make
報錯1: xml/apr_xml.c:442: 錯誤:‘apr_xml_parser’沒有名爲‘xp’的成員 解決:yum inatsll expat-devel -y
(6)編譯安裝
make install
7.php安裝(最後安裝)
(1)解壓
tar zxf php-5.3.28.tar.gz
(2)進入解壓目錄
cd php-5.3.28
(3)編譯安裝,依賴模塊。
./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-ip6
yum -y install libxml2-devel* yum -y install bzip2-devel* yum -y install curl curl-devel yum -y install libjpeg-devel yum -y install openssl-devel* yum -y install freetype-devel*
yum -y install libpng-devel yum -y install libmcrypt-devel* #沒有安裝包須要下載源碼包
#安裝編譯包
注:若是報錯可同過 yum list | grep 報錯名 :來查找須要安裝的包
make #編譯
make install #編譯安裝
7.配置LAMP架構文件
(1)apche主配置文件。
/usr/local/apache2/conf/httpd.conf
(2).so模塊。
/usr/local/apache2/modules/
注:libphp5.so作支持的與/usr/local/php/bin/php相同。
(3)查看模塊命令。
ldd /usr/local/apache2/modules/libphp5.so
(4)查看php編譯參數目錄。
/usr/local/php/bin/php -i |les s
cat /usr/local/apache2/build/config.nice #查看apche編譯參數目錄。
cat /usr/local/mysql/bin/mysqlbug|grep configure #查看mysql編譯參數目錄
①php-5.4.28]#cp php.ini-developmen /usr/local/php/etc/php.ini #開發環境使用。
②php-5.4.28]#cp php.ini-production /usr/local/php/etc/php.ini #生產環境使用。
注:/usr/local/php/bin/php –i |less #驗證加載配置文件。
(6)查看php加載的模塊。
/usr/local/php/bin/php -m
/usr/local/apache2/bin/apachectl -M #查看apache加載模塊。
注:(shared)動態。(static)靜態。
(7)查看狀態。
/usr/local/apache2/bin/apachectl -t
注:apr sockaddr_info_get() #表示SELINUX沒有關閉。
Syntax OK #沒有問題。
(8)啓動apahce配置文件。
usr/local/apache2/bin/apachectl start
報錯1:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message 解決:[root@server conf]# vi httpd.conf #ServerName www.example.com:80 ServerName localhost:80
(9)查看啓動進程。
ps aux | grep httpd
8.測試httpd解析php。
(1)編輯解析php。
vim /usr/local/apache2/htdocs/1.php
注:頁面訪問。
(2)訪問失敗,排錯。
Vim /usr/local/apache2/conf/httpd.conf #排查配置文件。
注:查看php模塊加載。
注:添加AddType。
(3)測試配置文件。
/usr/local/apache2/bin/apachectl -t
(4)重啓配置文件。
/usr/local/apache2/bin/apachectl restart
9.測試啓動
二.在LAMP基礎上架設論壇網站,虛擬主機。
1.關閉SELINUX
(1)編輯配置文件注:長期關閉。
vim /etc/selinux/config
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
(2)臨時關閉
getenforce 0
2.查找php沒法解析緣由。
(1)查看apache是否調用php模塊。
/usr/local/apache2/bin/apachectl -M
php5_module (shared)
(2)若是沒有模塊,須要查找是否有編譯過php模塊。
(3)若是有須要看一下apache主配置文件下是否調用php模塊。
vim /usr/local/apache2/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
注:這個php模塊是在編譯的時候經過apxs模塊自動寫入的。
(4)查看apache主配置文件下,php支持模塊是否寫入。
vim /usr/local/apache2/conf/httpd.conf
AddType application/x-httpd-php .php
(5)apache主配置文件下添加index.php主頁類型。
vim /usr/local/apache2/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
3.編輯虛擬主機
(1)解開註釋,虛擬主機配置文件。
vim /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf
(2)編輯解註釋一行的配置文件。
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
# You may use the command line option '-S' to verify your virtual host # configuration. # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any <VirtualHost> block. # <Directory "/usr/local/apache"> Options Indexes FollowSymLinks AllowOverride all Require all granted </Directory> <VirtualHost *:80> DocumentRoot "/usr/local/apache" ServerName 123.com CustomLog "logs/123.com-access_log" common </VirtualHost>
-------------------------------------------
經常使用參數
<VirtualHost *:80>
Serveradmin #管理員郵箱
documentRoot #目錄URL
ServerName #域名訪問
ServerAlias #域名別名(可寫多行)
Errorlog #錯誤日誌
Customlog #訪問日誌common格式
</VirtualHost>
----------------------------------------------
虛擬主機參數,適用Apache2.4日後版本
<Directory "C:/xxx/xxx">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
<VirtualHost *:80>
DocumentRoot "C:/xxx/xxx"
ServerName www.xxx.com
</VirtualHost>
注:虛擬主機,能夠給予多IP多端口多域名的配置。
(3)apache主配置文件下的相對路徑參數。
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
ServerRoot "/usr/local/apache2"
(4)測試配置文件。
/usr/local/apache2/bin/apachectl -t
(5)重啓主配置文件。
/usr/local/apache2/bin/apachectl restart
4.安裝論壇網站
(1)解壓論壇文件包。
unzip Discuz_X3.2_SC_GBK.zip
(2)將網站程序移動到網站目錄下。
mv uplocad/* ./
(3)刪除多餘文件。
rm -rf upload/ utility/ readme/
(4)權限修改。
ps aux | grep httpd
注:http執行用戶位daemon用戶,而網站文件是root用戶,則沒有權限執行
chown -R daemon config/ data uc_client/data uc_server/data
注:修改網站文件目錄的執行用戶,-R遞歸目錄下的子目錄。
注:域名訪問IP首選是 虛擬主機
打開 windos系統下hosts文件
(5)打開網站安裝。
(6)安裝,下一步à。
(7)配置mysql,數據庫網站安裝。
/etc/init.d/mysqld start
注:啓動mysql。
(8)添加開機自啓動。
chkconfig --list | grep mysql #查看是否存在mysql服務。
chkconfig --add mysqld #添加mysqld服務
chkconfig mysqld on #打開開機自啓動
/usr/local/mysql/bin/mysql
注:測試啓動mysql
(9)添加環境變量賦值。可以使用mysql命令直接啓動。在當前終端生效。
PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:
/usr/bin:/root/bin:/usr/local/mysql/bin
(10)設置全部終端均可訪問。
vim /etc/profile
#文件最下面輸入
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
source /etc/profile #即時生效
(11)設置mysql管理員密碼。
mysqladmin -uroot password ’123456‘
mysql -u root –p #登錄
注:再次登錄應輸入管理員,與密碼。
(12)mysql下添加普通用戶賦予管理權限,對應主機,與密碼。
mysql> grant all on *.* to 'user1'@'localhost' identified by 'discuz';
(13)繼續安裝論壇
注:添加數據庫選項。
注:安裝數據庫。
注:完成論壇安裝。