之前在開發過程中,都是使用yum或者寶塔的方式直接安裝相關的軟體,都是一些比較傻瓜式的操作,所以想對常用的開發軟體有個比較深入的理解,所以最近用原始碼安裝的方式重新搭建了一下開發環境,折騰一下,對於學習還是有所幫助的,在此記錄一下相關操作。
nginx原始碼安裝
1.使用wget獲取nginx原始碼
先使用命令建立nginx資料夾mkdir /usr/local/nginx && cd /usr/local/nginx
再使用wget獲取nginx原始碼,下載1.16.1版本wget http://nginx.org/download/nginx-1.16.1.tar.gz
2.安裝nginx依賴包
yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
3.解壓壓縮包
tar -zxvf nginx-1.16.1.tar.gz
4.編譯安裝nginx
cd nginx-1.16.1 && ./configure --prefix=/usr/local/nginx
編譯安裝make && make install
5.檢查配置檔案時否正確、檢視版本
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -V
6.啟動nginx
/usr/local/nginx/sbin/nginx
通過ps -ef | grep nginx
檢視nginx已成功啟動
通過瀏覽器直接訪問ip
7.其他配置
新增nginx環境變數
在/etc/profile檔案末尾新增export PATH=$PATH:/usr/local/nginx/sbin
再執行source /etc/profile
命令,執行nginx -t檢視環境變數是否生效
php原始碼安裝
1.使用wget獲取php原始碼
先使用命令建立php資料夾mkdir /usr/local/php && cd /usr/local/php
再使用wget下載php7.2原始碼
wget https://www.php.net/distributions/php-7.2.34.tar.gz
2.安裝php所需依賴
yum -y install libxml2* openssl* libcurl* libjpeg* libpng* freetype* libmcrypt*
3.解壓php壓縮包
tar -xzvf php-7.2.34.tar.gz
4.編譯安裝php
進入php目錄cd php-7.2.34
php的安裝目錄指定,安裝php的一些模組./configure --prefix=/usr/local/php --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo
配置完成後會提示: Thank you for using PHP.
編譯和安裝phpmake && make install
5.新增配置檔案
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
6.啟動php-fpm
/usr/local/php/sbin/php-fpm
如果直接啟動的話,會報錯,報錯資訊為沒有www使用者,所有需要建立
建立www使用者
useradd www
usermod -G www www
再執行/usr/local/php/sbin/php-fpm
命令,沒有報錯
再通過ps -ef | grep php
檢視程式是否存在
7.其他配置
新增環境變數,在/etc/profile檔案末尾追加 export PATH=$PATH:'/usr/local/php/bin/'
然後執行source /etc/profile
使修改生效
再命令中使用php -v,顯示php版本則環境變數生效
新增php配置檔案cp /usr/local/php/php-7.2.34/php.ini-development /usr/local/php/etc/php.ini
修改nginx.conf配置檔案,在server程式碼中新增以下資訊
location ~ \.php$ {
root /www/test;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root;
include fastcgi_params;
}
重啟nginx服務
使用命令建立目錄mkdir /www/test
在該目錄下建立index.php檔案,檔案內容為
<?php
phpinfo();
?>
通過瀏覽器訪問index.php,發現出錯,無許可權訪問
檢視nginx錯誤日誌cat /usr/local/nginx/logs/error.log
php.ini
配置檔案中,設定cgi.fix_pathinfo=1
過載php服務,並重新啟動nginx
使用瀏覽器訪問,可成功訪問到頁面,表示nginx收到請求已轉發給php-fpm處理
php擴充套件原始碼安裝
以swoole擴充套件為例
1.獲取swoole擴充套件原始碼cd /usr/local/php && wget wget https://github.com/swoole/swoole-src/archive/v4.5.6.tar.gz
2.解壓壓縮包
tar -zxvf v4.5.6.tar.gz
3.編譯安裝
進入檔案目錄cd swoole-src-4.5.6
使用安裝 php 時生成的 phpize 來生成 configure 配置檔案/usr/local/php/bin/phpize
執行錯誤Cannot find autoconf. Please check your autoconf installation and the
需要安裝autoconf,使用命令yum install autoconf -y
安裝完成後重新執行/usr/local/php/bin/phpize
執行配置./configure --with-php-config=/usr/local/php/bin/php-config
安裝編譯make && make install
4.修改php.ini配置
這裡使用絕對路徑,加入內容extension=/usr/local/php/swoole-src-4.5.6/modules/swoole.so
這裡遇到了個坑,php.ini沒有放對位置,使用命令php --ini
檢視php.ini檢索位置,並把php.ini檔案放在/usr/local/php/lib
目錄下,才會生效
5.重啟php,nginx服務
檢視phpinfo(),看到swoole擴充套件已開啟
mysql原始碼安裝
1.使用wget獲取mysql原始碼
先使用命令建立mysql資料夾mkdir /usr/local/mysql && cd /usr/local/mysql
獲取mysql原始碼wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.30.tar.gz
2.安裝mysql所需依賴
yum install -y cmake libaio gcc-c++ bison-devel ncurses-devel bison perl perl-devel perl perl-devel ncurses-devel
3.解壓壓縮包
新增mysql組及使用者groupadd mysql
useradd -r -g mysql mysql
解壓壓縮包tar -zvxf mysql-boost-5.7.30.tar.gz
4.編譯安裝mysql
進行目錄cd mysql-5.7.30
cmake編譯cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_BOOST=boost -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
設定許可權chown -R root /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/data
編譯安裝,時間可能會比較久make && make install
5.初始化mysql
進入bin目錄cd /usr/local/mysql/bin
./mysqld --user=www --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize
初始化完成,並給root使用者生成了臨時密碼,這裡要把密碼記錄下來,稍後需要使用
複製mysql服務啟動指令碼
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
執行service mysqld start
啟動mysql服務會報錯
因為沒有路徑也沒有許可權,所以建立此路徑並授權給mysql使用者
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/
再次執行service mysqld start
依然報錯
var/lib/mysql目錄不存在,首要先建立:mkdir /var/lib/mysql
並新增許可權為777chmod 777 /var/lib/mysql
刪除/etc/my.cnf檔案rm -f /etc/my.cnf
最後執行service mysqld start
,啟動成功
6.登入mysql
進入mysql bin目錄cd /usr/local/mysql/bin
執行./mysql -uroot -p
登入
登入後需要修改密碼
set password for root@localhost = password('123456');
賦予許可權並設定可以遠端訪問
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
重新整理許可權
FLUSH PRIVILEGES;
7.其他配置
新增環境變數,在/etc/profile檔案末尾追加 export PATH=$PATH:'/usr/local/mysql/bin'
然後執行source profile
再命令中使用mysql –version,顯示mysql版本則環境變數生效
redis原始碼安裝
1.使用wget獲取redis原始碼
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
2.在/usr/local下新建資料夾redis將redis-3.0.0.tar.gz拷貝到/usr/local/redis中
mkdir /usr/local/redis && cp /root/redis-5.0.3.tar.gz /usr/local/redis/redis-5.0.3.tar.gz
3.解壓壓縮包
chmod +x /usr/local/redis/redis-5.0.3.tar.gz && tar -zxvf /usr/local/redis/redis-5.0.3.tar.gz
4.進入解壓後的目錄中進行編譯 make
cd /usr/local/redis/redis-5.0.3 && make
5.完成編譯後進行安裝
make PREFIX=/usr/local/redis install
安裝完後會在/usr/local/redis下出現一個bin目錄,bin目錄中就是我們要使用的內容
6.啟動redis服務
前端模式啟動服務端:./redis-server
可以再開一個視窗啟動客戶端進行儲存資料測試:./redis-cli
後端模式啟動服務端
啟動後自動在後臺執行,與ssh視窗是否關閉無關(需要配置)
修改redis.conf配置檔案 redis.conf是redis的配置檔案,redis.conf在redis原始碼目錄。
將redis.conf配置檔案拷貝到bin目錄下,切換到bin目錄下
cp /usr/local/redis/redis-5.0.3/redis.conf /usr/local/redis/bin
發現許可權為只讀,修改redis.conf的許可權
chmod 777 redis.conf
由於配置檔案中預設為前端模式啟動,需手動編輯修改配置檔案中內容:vi redis.conf ,找到daemonize no
修改為yes,即是用後端模式啟動
進行後端模式啟動:./redis-server redis.conf
然後檢視是否成功啟動服務:ps -aux|grep redis
至此,成功的採用後端模式啟動了redis服務,無論ssh視窗是否關閉,服務將一直在後臺自動執行
7.停止redis服務
方式一:查詢到執行的redis服務的程式號然後強制停止服務(不建議採用此方式,線上正在儲存資料時採用強制關閉會丟失資料)
方式二:使用客戶端工具關閉:./redis-cli shutdown
8.其他redis配置
設定密碼,找到requirepass這一行,修改為你想要的登入密碼
設定完成密碼後,需要通過命令引數登入
./redis-cli -h 127.0.0.1 -p 6379 -a passwd
這裡會發出警告,表示密碼不安全,也可通過直接輸入./redis-cli
登入後進行密碼認證,若沒有密碼認證,將無許可權操作任何指令
配置redis外網訪問,首先要防火牆開啟redis預設埠6379
在配置檔案中,修改bind配置為0.0.0.0表示所有ip都可以訪問,當然也可以指定ip
配置完成後,重啟redis服務
使用redis客戶端連線工具連線redis,可成功訪問
memcached原始碼安裝
1.使用wget獲取memcached原始碼
先使用命令建立memcached資料夾mkdir /usr/local/memcached && cd /usr/local/memcached
獲取memcached原始碼wget http://www.memcached.org/files/memcached-1.6.8.tar.gz
2.安裝依賴
yum -y install libevent libevent-devel
3.解壓壓縮包
tar -zxvf memcached-1.6.8.tar.gz
4.編譯安裝
進入檔案目錄cd memcached-1.6.8
配置./configure --prefix=/usr/local/memcached --prefix=/usr/local/memcached/
編譯安裝make && make install
5.啟動memcached
啟動memcached/usr/local/memcached/bin/memcached -m 10 -u root &
檢視memcached程式ps -ef | grep memcached
node.js二進位制安裝
1.使用wget獲取node.js原始碼
先使用命令建立node資料夾mkdir /usr/local/node && cd /usr/local/node
再使用wget獲取node.js原始碼
wget https://nodejs.org/dist/v14.15.0/node-v14.15.0-linux-x64.tar.xz
2.解壓壓縮包
tar -xvf node-v14.15.0-linux-x64.tar.xz
3.配置環境
ln -s /usr/local/node/node-v14.15.0-linux-x64/bin/npm /usr/local/bin/
ln -s /usr/local/node/node-v14.15.0-linux-x64/bin/node /usr/local/bin/
4.檢查是否安裝成功
node -v
npm -v
一鍵安裝指令碼
敬請期待!!!!
本作品採用《CC 協議》,轉載必須註明作者和本文連結