一.Mysql數據庫的源碼編譯
(一).編譯源碼
1.下載mysql數據庫源碼包並解壓
tar zxf mysql-boost-5.7.11.tar.gz
cd mysql-5.7.11/
2.安裝源碼編譯工具cmake(支持編譯c++語言)
Cmake跨平臺工具用來預編譯mysql源碼的,用來設置mysql的編譯參數。如:安裝目錄,數據存放目錄,字符編碼,排序規則等
3.創建預編譯環境,可以定製加上自己所需要的安裝條件
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
#安裝目錄
-DMYSQL_DATADIR=/usr/local/mysql/data \
#數據庫存放目錄
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ #Unix socket 文件路徑
-DWITH_MYISAM_STORAGE_ENGINE=1 \
#安裝 myisam 存儲引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
#安裝 innodb 存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
#安裝 archive 存儲引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#安裝 blackhole 存儲引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \
#安裝數據庫分區
-DENABLED_LOCAL_INFILE=1 \
#允許從本地導入數據
-DWITH_READLINE=1 \
#快捷鍵功能
-DWITH_SSL=yes \
#支持 SSL
-DDEFAULT_CHARSET=utf8 \
#使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci \
#校驗字符
-DEXTRA_CHARSETS=all \
#安裝所有擴展字符集
-DMYSQL_TCP_PORT=3306 \
#MySQL 監聽端口
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/
4.在編譯時要解決以下安裝包依賴問題,安裝以下軟件
yum install gcc-c++ -y
yum install bison -y
yum install ncurses-devel -y
rm -fr CMakeCache.txt#這個文件中保存着上次編譯的緩存,清理緩存,才能重新開始新的編譯,並保存
yum install openssl-devel -y
5.編譯彙編
make & make install
(二).配置mysql環境
1.進入源碼編譯目錄,把mysql的配置文件複製到/etc/my.cnf,並且編輯配置文件
pwd
/usr/local/lnmp/mysql/support-files
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf
basedir = /usr/local/lnmp/mysql #mysql的安裝目錄
datadir = /usr/local/lnmp/mysql/data#mysql數據存放位置
port = 3306 #mysql服務端口
socket = /usr/local/lnmp/mysql/data/mysql.sock #mysql通信的套結字存放位置
2.編譯完成的mysql啓動腳本父之到啓動服務的默認目錄中
3.對mysql服務進行限制(利用mysql用戶),將mysql服務的工作空間侷限在mysql用戶的家目錄中,創建mysql組和mysql用戶
groupadd -g 27 mysql
useradd -u 27 -g 27 -M -d /usr/local/lnmp/mysql/data -s /sbin/nologin mysql
4.修改mysql目錄下的data目錄的所屬組修改爲mysql,因爲mysql服務器將要往這個目錄中寫數據,保證其有執行權限
chown -R mysql.mysql .
5.將mysql目錄下的mysql二進制命令放進系統的環境變量文件中,保證可以直接調用該二進制命令
vim /root/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
source .bash_profile 刷新文件
6.執行mysql的配置初始化文件,會自動生成一個初始化密碼
mysqld --initialize --user=mysql
(三).mysql的安全初始化
1.啓動mysql服務
2.執行安全初始化腳本mysql_secure_installation,輸入初始化密碼,重新更改root用戶密碼
3.登錄數據庫測試
二.PHP源碼編譯
1.得到php的源碼包並解壓
tar jxf php-5.6.35.tar.bz2
2.進入解壓目錄創造預編譯環境
cd php-5.6.35
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-mcrypt –with-mhash
3.解決依賴性,編譯時會出現錯誤,依賴找不到,按照提示,缺少什麼找到並且安裝包即可,直到編譯成功沒有錯誤,執行下一步
yum provides */jpeglib.h 查找缺少的包
yum search freetype-config 查找缺少的包
yum install -y gcc gcc++ libxml2-devel openssl-devel curl-devel libjpeg-turbo-devel libgcj-devel freetype-devel libpng-devel gmp-devel
yum provides */mcrypt.h 這個包沒有需要下載安裝下面兩個軟件包
yum install libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm -y
會有一個警告下載安裝這個:
rpm -ivh re2c-0.13.5-1.el6.x86_64.rpm
4.編譯和安裝
make && make install
5.將配置文件拷貝到
cd /usr/local/lnmp/php/etc/
cp php-fpm.conf.default php-fpm.conf
cp php.ini-production /usr/local/lnmp/php/etc/php.ini
6.做php服務的簡單配置(配置pid和時區)
cd /usr/local/lnmp/php/etc
vim php.ini 添加時區Asia/Shanghai
vim php-fpm.conf # 打開 pid
7.將php啓動的腳本複製到系統啓動腳本的默認目錄下,並測試php是否可以啓動
cd php-5.6.35/sapi/fpm/
cp init.d.php-fpm /etc/init.d/php-fpm # init.d.php-fpm是編譯完成的啓動腳本
chmod +x /etc/init.d/php-fpm #給腳本加上可執行權限
/etc/init.d/php-fpm start #打開php服務
netstat -antlp # 查看php服務的監聽端口
三.nginx的源碼編譯
1.得到nginx的源碼並解壓
tar zxf nginx-1.14.0.tar.gz
tar zxf nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar.gz
2.去掉nginx的版本號
cd nginx-1.14.0/src/core
vim nginx.h
3.註釋debug
cd nginx-1.14.0/auto/cc
vim gcc
4.創造預編譯環境
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42
5.解決源編譯中的依賴性問題
yum install pcre-devel -y
6.編譯彙編
make && make install
7.配置nginx服務
cd /usr/local/lnmp/nginx/conf
vim nginx.conf 用戶改爲nginx 65-71行修改爲如圖,70行要包括
因爲fastcgi.conf包含所以這麼修改
8.對nginx用戶做限制
vim /etc/security/limits.conf
nginx - nofile 65536
9.將編譯生成的mysql二進制命令放進系統的環境變量文件中,保證可以直接調用該二進制命令
vim /root/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/nginx/sbin
source /root/.bash_profile
10.檢測nginx服務是否可用並打開nginx服務
nginx -t
nginx
論壇搭建:
1.解壓文件到指定目錄
unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
2.修改目錄的屬性
cd /usr/local/lnmp/nginx/html/
mv upload/ bbs
cd bbs/
chmod -R 777 config/ data/ uc_client/ uc_server/
ll /usr/local/lnmp/mysql/data/mysql.sock
cd /usr/local/lnmp/php/etc/
3.修改配置文件vim php.ini
4.開啓服務/etc/init.d/php-fpm reload
5.修改upload的權限
ll -d /usr/local/lnmp/mysql/data/mysql.sock
ll -d /usr/local/lnmp/mysql/data/
chmod 755 /usr/local/lnmp/mysql/data/
6.瀏覽器訪問172.25.38.4/bbs/admin.php,爲了防止重複安裝刪除index.php
cd install/
rm -rf index.php
7.之後可以打開登陸,測試論壇
Memcache對php訪問加速
1.解壓文件
tar axf memcache-2.2.5.tgz
yum install memcached
vim /etc/sysconfig/memcached 保存它緩存信息,可以緩存64,一旦停止不能保存上次的
2.編輯路徑
vim .bash_profile
source .bash_profile
3.測試端口
4.進入php主目錄動態加載phpize
cd memcache-2.2.5
Phpize
Make
make install
5.修改php配置文件如memcache
cd /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20131226/
ls
php -m | grep memcache
cd /usr/local/lnmp/php/etc/
vim php.ini
/etc/init.d/php-fpm reload
php -m | grep memcache
6.複製文件到指定目錄,重啓php-fpm服務
cp example.php memcache.php /usr/local/lnmp/nginx/html/
cd /usr/local/lnmp/nginx/html/
vim memcache.php
/etc/init.d/php-fpm reload
1.停止之前的nginx程序
tar zxf openresty-1.13.6.1.tar.gz
2.編譯
./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
gmake&&gmake insatll
3.複製之前的nginx配置文件到現在編譯的nginx中
cd /opt/nginx/bin/nginx/conf
cp /usr/local/lnmp/nginx/conf/nginx.conf .
/opt/nginx/nginx/sbin/nginx -t 檢查語法
/opt/nginx/nginx/sbin/nginx 打開nginx
4.複製主目錄到當前用於檢測
cp /usr/local/lnmp/nginx/html/example.php .
cp /usr/local/lnmp/nginx/html/index.php .
5.修改配置文件
vim nginx.conf
upstream memcache {
19 server localhost:11211;
20 keepalive 512;
21 }
47 location / {
48 set $key $uri$args;
49 srcache_fetch GET /memc $key;
50 srcache_store PUT /mnmc $key;
51 root html;
52 index index.php index.html index.htm;
53 }
54 location /memc{
55 internal;
56 memc_connect_timeout 100ms;
57 memc_send_timeout 100ms;
58 memc_read_timeout 100ms;
59 set $memc_key $query_string;
60 set $memc_exptime 300;
61 memc_pass memcache;
62 }
6.訪問php加速時間,從每秒1293提高到3540
測試瀏覽器中輸入172.25.254.4/memcache.php