本次目標是在新安裝在虛擬機中的CentOS7.5系統中安裝一系列後端開發一般用到的程序服務(這裏不介紹CentOS的安裝),並以phpMyAdmin爲例子部署一個網站.php
重要提示:若是以爲一個個安裝和配置太麻煩那推薦使用寶塔可視化管理工具進行操做,基本實現一鍵操做極大提升效率,簡言之一個字,爽!(固然也不是完美的,如當版本該工具不支持在ubuntu安裝MySQL8.0)css
虛擬機ip是192.168.8.15
,
管理員用戶名sorgo
,
服務程序執行用戶名www
,
網站根除目錄/data/wwwroot
,
安裝和配置時除特別說明則root
用戶操做,
執行編輯文件命令後,下一行開始向右縮進4個空格爲本次編輯的內容html
vmware虛擬機安裝不到20分鐘能夠完成(基礎網頁服務器1810版本,選中文環境,yum源默認是163.com)node
useradd www -s /usr/sbin/nologin useradd -G www sorgo passwd sorgo #賦予sorgo用戶root權限,且切換root時不用輸密碼, `-l`查看已有權限 visudo #編輯內容: #添加一條,表示sorgo可以使用`sudo`執行root權限 sorgo ALL=(ALL) NOPASSWD: ALL
vim /etc/bashrc # 添加內容: alias s-start='systemctl start' alias s-stop='systemctl stop' alias s-restart='systemctl restart' alias s-enable='systemctl enable' alias s-disable='systemctl disablep' alias s-status='systemctl status' alias vi='vim' alias ll='ls -laph' alias ..='cd ..' alias nrd='npm run dev' alias nrh='npm run hot' alias nrp='npm run production' alias nrw='npm run watch' alias nrww='npm run watch-poll' alias yrd='yarn run dev' alias yrh='yarn run hot' alias yrp='yarn run production' alias yrw='yarn run watch' alias yrwp='yarn run watch-poll' alias pa='php artisan' alias phpspec='vendor/bin/phpspec' alias phpunit='vendor/bin/phpunit' #使修改當即生效 source /etc/bashrc
#項目目錄 mkdir -p /data/wwwroot/ #日誌目錄 mkdir -p /data/wwwlogs/nginx/ #網站基礎應用的安裝目錄 mkdir /data/server/ #賦權 chown -R sorgo:www /data/ chmod -Rf g+s /data/
#查看網卡名,左側一欄那個就是 ifconfig #編輯網卡配置,使nat模式的ip固定下來 vi /etc/sysconfig/network-scripts/ifcfg-ens33 #編輯內容: #配置文件關鍵內容,僅供參考 NAME=ens33 DEVICE=ens33 DEFROUTE=yes ONBOOT=yes #設置爲static時要帶`IPADDR` BOOTPROTO=static IPADDR=192.168.8.15 NETMASK=255.255.255.0 #重啓生效 systemctl restart network
阿里源mysql
cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.bak wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache
163源
官方使用幫助linux
cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo.backup wget -O CentOS-Base.repo https://mirrors.163.com/.help/CentOS7-Base-163.repo yum clean all yum makecache #更新系統全部yum安裝的程序,選作 yum update -y
yum的一些命令nginx
yum list all #列出全部安轉包 yum list installed #列出已經安裝的 yum list available #列出沒有安裝的 yum remove software #卸載軟件 yum install software #安裝軟件 yum search 關鍵字 #搜索與關鍵字相關的軟件 yum whatprovides 文件 #搜索包含此文件的包 yum reinstall software #重新安裝軟件 yum localinstall 第三方軟件 #安裝該軟件並解決依賴關係 yum info software #查詢軟件信息 yum groups list #列出軟件組 yum groups install #安裝組 yum groups remove #卸載組 yum groups info #查看組信息 yum repolist #查看已安裝的源
在centos7.5中,防火牆是默認開機啓動的,在開發環境中爲了方便起見這裏直接把防火牆關閉laravel
#查看狀態 systemctl status firewalld #取消開機啓動 systemctl disable firewalld #關閉防火牆 systemctl stop firewalld #關閉selinux,不然影響samba的使用 vi /etc/selinux/config #編輯內容: SELINUX=disabled
yum install psmisc -y #查看目前在運行的進程 pstree
#centos1810已默認安裝 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
#按進程名查看pid pidof nginx #按進程名終止 pkill redis-server killall redis-server
ssh鏈接工具推薦使用MobaXterm,其自帶ftp文件傳輸功能c++
本次安裝的是stable
版(當前是1.16.*
)
官方安裝指導文檔git
#建立源文件 vi /etc/yum.repos.d/nginx.repo #添加如下內容 [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key
若是要將主線版本設爲默認安裝的版本,可執行yum-config-manager --enable nginx-mainline
yum install yum-utils #下面命令會安裝前面源文件設置的stable版本 yum install -y nginx #查看安裝好的版本 nginx -v
全局配置
#配置執行用戶名 vi /etc/nginx/nginx.conf #編輯內容: user www;
爲新項目添加一個nginx站點配置,這是一個php網站的配置模板,從此其它網點的配置都會以這個模板爲基礎進行修改匹配.
#vi /etc/nginx/conf.d/your_project_name.conf #編輯內容: #添加 server { listen 1700; #listen 443 ssl http2; #listen [::]:443 ssl http2; #listen [::]:80; #server_name domain.com; #字符集設置只能在server塊內 charset utf-8; index index.php index.html index.htm default.php default.htm default.html; root /data/wwwroot/your_project_name/public; #access_log /data/wwwlogs/nginx/your_project_name.log; #error_log /data/wwwlogs/nginx/your_project_name.error.log; #laravel、thinkPHP路由配置 location / { try_files $uri $uri/ /index.php?$query_string; } #運行php文件 location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } #禁止訪問的文件或目錄 location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md) { return 404; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; error_log off; access_log /dev/null; } location ~ .*\.(js|css)?$ { expires 12h; error_log off; access_log /dev/null; } }
#測試配置信息是否有語法問題,經過後才能啓動 nginx -t #啓動 nginx
所有指令
nginx -t #測試配置信息
nginx #默認啓動方式 start
nginx -v #顯示版本信息,-V(大V)顯示編譯時的參數
nginx -s stop #快速中止服務
nginx -s quit #正常中止服務
nginx -s reload #重啓
#安裝源 yum install -y epel-release yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm #搜索符合條件的包 yum search php73 #安裝php7.3及其擴展 #包含redis、memcached、msgpack和yaf框架等php擴展 yum install -y php73-php php73-php-fpm php73-php-pear php73-php-bcmath php73-php-mbstring php73-php-cli php73-php-pdo php73-php-pecl-mysql php73-php-mysqlnd php73-php-pecl-redis4 php73-php-pecl-memcached php73-php-pecl-msgpack php73-php-pecl-yaf php73-php-pecl-jsond-devel php73-php-gd php73-php-common php73-php-intl php73-php-xml php73-php-opcache php73-php-pecl-apcu php73-php-gmp php73-php-process php73-php-pecl-imagick php73-php-devel php73-php-zip php73-php-ldap php73-php-imap php73-php-pecl-mcrypt #程序的安裝路徑:`/opt/remi/php73/`; #配置文件路徑:`/etc/opt/remi/php73/php.ini`;
cp /etc/opt/remi/php73/php.ini /etc/opt/remi/php73/php.ini.bak #修改php時區和擴展文件目錄路徑 vi /etc/opt/remi/php73/php.ini #編輯內容: date.timezone = PRC extension_dir = "/opt/remi/php73/root/usr/lib64/php/modules/" #修改php-fpm執行用戶 vi /etc/opt/remi/php73/php-fpm.d/www.conf #編輯內容: user=www group=www #賦權 chown -R root:www /var/opt/remi/ #軟鏈到通常目錄 ln -s /etc/opt/remi/php73/php.ini /etc/php.ini ln -s /opt/remi/php73/root/usr/bin/php /usr/bin/php ln -s /opt/remi/php73/root/usr/sbin/php-fpm /usr/bin/php-fpm ln -s /opt/remi/php73/root/usr/bin/php-cgi /usr/bin/php-cgi ln -s /opt/remi/php73/root/usr/bin/pear /usr/bin/php-pear ln -s /opt/remi/php73/root/usr/bin/phar.phar /usr/bin/php-phar #查看安裝的php版本 php -v #查看已經安裝的php擴展模塊 php -m
#啓動 php-fpm #終止 kill -QUIT `cat /var/opt/remi/php73/run/php-fpm/php-fpm.pid` #重啓 kill -USR2 `cat /var/opt/remi/php73/run/php-fpm/php-fpm.pid`
#下載源 wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm #安裝源 yum localinstall -y mysql80-community-release-el7-1.noarch.rpm #列出可用的mysql包 #yum repolist enabled | grep mysql #若是打算安裝5.7,那執行下面兩句,切換默認版本 #yum-config-manager --disable mysql80-community #yum-config-manager --enable mysql57-community #安裝 yum install -y mysql-community-server #更新版本 #yum update mysql-server # 查看版本 mysql -V
vi /etc/my.cnf #編輯內容 [mysqld] # 設置3301端口 port=3301 # 容許最大鏈接數 max_connections=200 # 容許鏈接失敗的次數。這是爲了防止有人從該主機試圖攻擊數據庫系統 max_connect_errors=10 # 服務端使用的字符集默認爲UTF8 #character-set-server=utf8 # 建立新表時將使用的默認存儲引擎 default-storage-engine=INNODB # 默認使用「mysql_native_password」插件認證,以mysql5.7的密碼處理方式保存,以兼容較舊的鏈接程序,8.0默認是caching_sha2_password方式 default_authentication_plugin=mysql_native_password #設置默認時區 default-time_zone = '+8:00'
# 啓動 systemctl start mysqld # 開機啓動 systemctl enable mysqld # 狀態 systemctl status mysqld # 查看root初始密碼 grep 'temporary password' /var/log/mysqld.log # 登陸 mysql -uroot -p # 必須修改初始密碼,新密碼須包含大小字字母、數字和特殊字符至少8個字符 # 採用mysql_native_password方式處理密碼,以mysql5.7的密碼處理方式保存,以兼容較舊的鏈接程序,8.0默認是caching_sha2_password方式 mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Sorgo123.'; # 進入MySQL數據庫 mysql> use mysql; # 設置root用戶可在任意主機登陸 mysql> update user set host='%' where user='root' and host='localhost'; mysql> FLUSH PRIVILEGES; # 查詢user表信息 mysql> select user,host,plugin from user;
cd /data/server/ wget http://download.redis.io/releases/redis-5.0.4.tar.gz tar -zvxf redis-5.0.4.tar.gz && cd redis-5.0.4 make #軟鏈成統一的目錄,方便多版本管理 ln -s /data/server/redis-5.0.4 /data/server/redis ln -s /data/server/redis/redis.conf /etc/redis.conf #軟鏈到命令目錄 ln -s /data/server/redis/src/redis-cli /usr/local/bin/redis-cli ln -s /data/server/redis/src/redis-server /usr/local/bin/redis-server ln -s /data/server/redis/src/redis-sentinel /usr/local/bin/redis-sentinel #查看版本 redis-server -v
# vi /etc/redis.conf #任意主機可訪問 bind 0.0.0.0 #密碼登陸 requirepass Sorgo123. #後臺進程的方式運行 daemonize yes
#按配置文件開啓 redis-server /etc/redis.conf #進入交互操做工具 redis-cli -h 127.0.0.1 -p 6379 -a Sorgo123. #查看redis進程信息 info server #關閉服務 shutdown
yum install -y memcached #查看幫助信息及版本 memcached -h #開啓,可按不一樣端口開啓多個進程 memcached -d -p 11211 -m 150 -u www #關閉,會把進程名包含`memcached`的都關閉 pkill memcached
啓動選項:
-d 是啓動一個守護進程;
-m 是分配給Memcache使用的內存數量,單位是MB;
-u 是運行Memcache的用戶;
-l 是監聽的服務器IP地址,能夠有多個地址;
-p 是設置Memcache監聽的端口,,最好是1024以上的端口;
-c 是最大運行的併發鏈接數,默認是1024;
-P 是設置保存Memcache的pid文件。
cd /data/server/ #先安裝依賴,不然沒法編譯 yum install -y libevent-devel #下載源碼 wget http://www.memcached.org/files/memcached-1.5.13.tar.gz #解壓和進入目錄 tar -zvxf memcached-1.5.13.tar.gz && cd memcached-1.5.13 #執行配置,這裏只設置安裝目錄 ./configure --prefix=/data/server/memcached-1.5.13/ #編譯和安裝 make && make install ln -s /data/server/memcached-1.5.13 /data/server/memcached ln -s /data/server/memcached/bin/memcached /usr/local/bin/memcached #查看安裝的版本 memcached -h
#安裝 yum install -y samba samba-client samba-common #添加samba用戶,用戶已存在的用戶名,專門給samba登陸的密碼:sorgo smbpasswd -a sorgo #查看已添加的用戶 pdbedit -L #修改配置 cp /etc/samba/smb.conf /etc/samba/smb.conf.bak vim /etc/samba/smb.conf #添加可經過samba訪問的目錄路徑 [wwwroot] comment = website root path = /data/wwwroot valid users = sorgo writable = yes create mask = 0750 directory mask = 0750 #檢測配置文件語法 testparm #啓動 systemctl enable smb && systemctl enable nmb systemctl restart smb && systemctl restart nmb #查看狀態 smbstatus # linux端使用 ##測試鏈接 smbclient -L //192.168.8.15 -U smb_user_naem ##掛載到應用端 mount -t cifs //192.168.8.15/wwwroot/ /smb/ -o username=smb_user_naem,password=1234 df -h /smb ##卸載 umount /smb # windows端使用 \\${ip} # 注意事項 * 絕對不要在配置文件裏寫中文,即便是中文註釋,不然windows沒法進入該目錄!!! * 若是服務器在windows裏ping不通(不是由於服務器禁止ping,而是未知緣由),那也是連不上的. * phpstrom在打開samba項目文件時變得異常卡頓
安裝
#生成composer.phar php73 -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" php73 composer-setup.php php73 -r "unlink('composer-setup.php');" #移至命令目錄 mv composer.phar /usr/local/bin/composer #版本等信息 composer
設置
#設置源爲國內鏡像,下面二選一 composer config -g repo.packagist composer https://packagist.phpcomposer.com composer config -g repo.packagist composer https://packagist.laravel-china.org #解除上面的設置 composer config -g --unset repos.packagist #查看全局配置 composer config -gl
phpMyAdmin其實就是一個php寫的網站, 到官網把php文件包下載到服務器, 設置好nginx指向根目錄便可.
cd /data/server/ #獲取方式1: 使用composer下載(有時速度不理想) #composer create-project phpmyadmin/phpmyadmin #獲取方式2: wget直接從官網下載(這是本次演示的方式) wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip #獲取方式3: 在其它地方下載好,而後經過ftp上傳到本服務器,原則上哪一個便利採用哪一種 #解壓到當前目錄 unzip phpMyAdmin-4.8.5-all-languages.zip #軟鏈方便版本控制 ln -s phpMyAdmin-4.8.5-all-languages phpmyadmin #編輯配置文件 cp phpmyadmin/config.sample.inc.php phpmyadmin/config.inc.php vi phpmyadmin/config.inc.php #下面是編輯內容: #設置任意32位以上長度的密鑰 $cfg['blowfish_secret'] = 'dNE9GVnon3LWSVGvhGPuZdBhb7c7RtQ3'; #賦權 chmod -R 770 phpmyadmin/ #nginx網站配置,利用sed命令來替換一個模板配置中的關鍵值 #主要改變了監聽的端口`8888`和日誌文件名`phpmyadmin` cat /etc/nginx/conf.d/your_project_name.conf | sed 's/1700/8888/g' | sed 's/your_project_name\./phpmyadmin\./g' | sed 's/wwwroot\/your_project_name\/public/server\/phpmyadmin\//g' > /etc/nginx/conf.d/phpmyadmin.conf #檢查配置文件無誤方可啓動 nginx -t #重啓nginx nginx -s reload #訪問 http://192.168.8.15:8888/
中文API文檔
node.js的安裝方式有:
如今介紹後兩種方法,也是版本選擇較爲豐富的方法
這個是下載下來就能用的
cd /data/server/ #下載二進制文件包,大概12M wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz #解壓,注意這個解壓命令與解壓`.gz`結尾的文件不一樣 tar -xJvf node-v10.15.3-linux-x64.tar.xz #軟鏈 ln -s node-v10.15.3-linux-x64 node ln -s /data/server/node/bin/node /usr/local/bin/node ln -s /data/server/node/bin/npm /usr/local/bin/npm ln -s /data/server/node/bin/npx /usr/local/bin/npx #查看版本 node -v npm -v
編譯的過程很慢,親測一個小時左右
cd /data/server/ #下載源碼,大概35M wget https://nodejs.org/dist/v10.15.3/node-v10.15.3.tar.gz tar -zvxf node-v10.15.3.tar.gz && cd node-v10.15.3 #執行配置腳本 ./configure #編譯和安裝 make && make install #查看版本 node -v npm -v
#添加yarn的yum源 curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo #安裝,須確保nodejs已經安裝好 yum install -y yarn #查看版本 yarn -v