仮想マシンによる個人LNMP開発環境の構築
10289 ワード
仮想マシンによる個人LNMP開発環境の構築仮想マシン をダウンロード Ubuntuのミラー をダウンロードインストール手順 Ubuntuリモートログインのrootアカウント を追加タイムゾーン調整 カスタムVim構成 仮想マシン共有Windowsシステムフォルダ 仮想マシン自動マウント共有フォルダ を再起動仮想マシンネットワークブリッジ PHP取付 まずapt-getソースを更新し、多くのパケットを更新しない php 7を取り付ける.2 インストールComponent インストールNginx aptインストール 仮想サイト構成 Dockerインストール インストールMysql mysqlのrootパスワードとリモートアクセス権 を構成する Redis をインストール Redisサービス端末 をインストール Redis PHP拡張 をインストール
仮想マシンのダウンロード
VMware-workstation-PlayではなくVMware-workstation-Proをダウンロードすることに注意してください.私がダウンロードしたのは、VMware-workstation-full-14..3-9474260です.exe
Ubuntuのミラーをダウンロード
注意デスクトップ版のない中科の大きい住所をダウンロードしますhttp://mirrors.ustc.edu.cn/ubuntu-releases/ubuntu-18.04.1-live-server-amd64.iso
インストール手順
…
Ubuntuリモートログインのrootアカウントを追加
Ubuntuのrootアカウントのデフォルトは無効です
タイムゾーンちょうせい
カスタムVim構成
仮想マシン共有Windowsシステムフォルダ
VMメニューバー->VM->設定->オプション->共有フォルダ->常に有効->追加(共有するフォルダを見つける)->OK
上は正常でdf-hを再起動しなくても/mnt/hgfsが見えます.ls/mnt/hgfsは共有したばかりのフォルダを発見しました.私はshareです.file
VMによる共有フォルダの自動マウントの再起動
注意:仮想マシンの再起動後/mnt/hgfsに対応するフォルダが見つかりません.次のように1ラウンド実行します.
VMメニューバー->VM->設定->オプション->共有フォルダ->無効->OK
VMメニューバー->VM->設定->オプション->共有フォルダ->常に有効->OK
もちろん上には2輪の操作があり、自動マウントではなく、超面倒です.次はN回試して、N回再起動して何度も成功した方法です
上で実行が完了したことを確認したら、起動自動マウントを設定します.
VMネットワークブリッジ
イントラネットIPが豊かであればネットワークブリッジの方式を優先する
VMのシャットダウン後にVMメニューバーが表示される->VM->設定->ネットワークアダプタブリッジモードを選択
電源投入コマンドライン構成
Ubuntu 18.04のネットワーク管理プログラムはnetplanに変更されたので、構成方式も変更する必要があります.元を押すと/etc/initに遭遇します.d/networking:No such file or directory問題
静的IPを使用する場合は、以下のように変更する必要があります.
ネットワーク構成のリフレッシュ
PHP取付
まずapt-getソースを更新し、多くのパッケージを更新しません.
ubuntuのデフォルトのphpミラーはphp 5であるため.5.9 php 7ミラーを追加する必要があります
1、ソースファイルのバックアップ
2、ソースリストファイルの編集
3、元のリストを削除し、以下の内容を追加する(中科大ミラーソース)
4、aptリストの更新
予備:次のものは必ずしも必要ではありません.私がインストールしたとき、aptソースを変更してから、次の解決策を見つけませんでした.
php 7をインストールする.2
Composerのインストール
インストールNginx
ソースコードインストールとaptソースインストールの2つのインストール方法の参考があります.https://www.cnblogs.com/EasonJim/p/7806879.html
aptインストール
/usr/sbin/nginx:メインプログラム
/etc/nginx:プロファイルの保存
/usr/share/nginx:静的ファイルの保存
/var/log/nginx:ログの保存
関連コマンドservice nginx{start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}
仮想サイトの構成
最後にwindowsのhostファイルを変更します
Dockerインストール
あとDockerの取り付け方が少し複雑なので、後で検討します
Mysqlのインストール
mysqlのrootパスワードとリモートアクセス権の構成
Mysql 5.7バージョンでプロファイルが安全に変更されました/etc/mysql/my.cnfプロファイルに[mysqld]を追加
port=3306 bind-address=0.0.0.0
Redisのインストール
Redisサービスのインストール
プロファイルアドレス/etc/redis/redis.conf
Redis PHP拡張のインストール
仮想マシンのダウンロード
VMware-workstation-PlayではなくVMware-workstation-Proをダウンロードすることに注意してください.私がダウンロードしたのは、VMware-workstation-full-14..3-9474260です.exe
Ubuntuのミラーをダウンロード
注意デスクトップ版のない中科の大きい住所をダウンロードしますhttp://mirrors.ustc.edu.cn/ubuntu-releases/ubuntu-18.04.1-live-server-amd64.iso
インストール手順
…
Ubuntuリモートログインのrootアカウントを追加
Ubuntuのrootアカウントのデフォルトは無効です
sudo passwd -u root # root
sudo passwd root # root
su - # root root
vim /etc/ssh/sshd_config # ssh
## PermitRootLogin yes
service ssh restart # ssh
タイムゾーンちょうせい
tzselect # Asia--> China--> Beijing--> 1(Yes)
TZ='Asia/Shanghai'
export TZ
##
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
カスタムVim構成
cd ~
cp /usr/share/vim/vim80/vimrc_example.vim .vimrc
vim .vimrc
##### backup ,
" set backup " keep a backup file (restore to previous version)
#####
62
63 """"""""""""""""User set"""""""""""""""""""
64
65 " no vim swap file
66 set noswapfile
67 set undodir=~/.undodir
68
69 " show line number
70 set number
71
72 " tab-->4 space
73 set ts=4
74 set expandtab
75 set autoindent
仮想マシン共有Windowsシステムフォルダ
VMメニューバー->VM->設定->オプション->共有フォルダ->常に有効->追加(共有するフォルダを見つける)->OK
上は正常でdf-hを再起動しなくても/mnt/hgfsが見えます.ls/mnt/hgfsは共有したばかりのフォルダを発見しました.私はshareです.file
VMによる共有フォルダの自動マウントの再起動
注意:仮想マシンの再起動後/mnt/hgfsに対応するフォルダが見つかりません.次のように1ラウンド実行します.
VMメニューバー->VM->設定->オプション->共有フォルダ->無効->OK
VMメニューバー->VM->設定->オプション->共有フォルダ->常に有効->OK
もちろん上には2輪の操作があり、自動マウントではなく、超面倒です.次はN回試して、N回再起動して何度も成功した方法です
apt-get install open-vm-tools
apt-get install open-vm-tools-dkms
# Nginx ID, Nginx ,
# ,
ps -ef | grep nginx
# Nginx
id www-data #uid=33 gid=33
# www-data -o ,
vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other,uid=33,gid=33 #
# fuse: mountpoint is not empty
#
df -h # , Nginx
reboot #
上で実行が完了したことを確認したら、起動自動マウントを設定します.
vim /etc/fstab # , , uid gid
# .host:/ /mnt/hgfs/ fuse.vmhgfs-fuse allow_other,uid=33,gid=33 0 0
mount -a # ,
reboot # ,
VMネットワークブリッジ
イントラネットIPが豊かであればネットワークブリッジの方式を優先する
VMのシャットダウン後にVMメニューバーが表示される->VM->設定->ネットワークアダプタブリッジモードを選択
電源投入コマンドライン構成
Ubuntu 18.04のネットワーク管理プログラムはnetplanに変更されたので、構成方式も変更する必要があります.元を押すと/etc/initに遭遇します.d/networking:No such file or directory問題
ifconfig -a # IP ( ): ens33
vim cat /etc/netplan/50-cloud-init.yaml #
静的IPを使用する場合は、以下のように変更する必要があります.
# network: {config: disabled}
network:
ethernets:
ens33:
addresses: [192.168.1.233/24] // ip /24 ,
gateway4: 192.168.1.1 // , Windows
dhcp4: no
dhcp6: no
nameservers: // , ip
addresses: [114.114.114.114, 8.8.8.8]
version: 2
ネットワーク構成のリフレッシュ
netplan apply
ping www.baidu.com #
PHP取付
まずapt-getソースを更新し、多くのパッケージを更新しません.
ubuntuのデフォルトのphpミラーはphp 5であるため.5.9 php 7ミラーを追加する必要があります
1、ソースファイルのバックアップ
cp /etc/apt/sources.list /etc/apt/sources.list.bak #
2、ソースリストファイルの編集
vim /etc/apt/sources.list #
3、元のリストを削除し、以下の内容を追加する(中科大ミラーソース)
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
4、aptリストの更新
apt-get update
予備:次のものは必ずしも必要ではありません.私がインストールしたとき、aptソースを変更してから、次の解決策を見つけませんでした.
apt-get update
apt-get install -y language-pack-en-base
apt-get install software-properties-common
LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
apt-get update
php 7をインストールする.2
# php7.2
apt-cache search php7-* # php modouls
apt-install install -y php7.2 php7.2-cli php7.2-dev php7.2-fpm php7.2-mbstring php7.2-json php7.2-xml php7.2-mysql #
php-v #
php-m #
php -i|grep Configure
# PHP Warning: Module 'mbstring' already loaded in Unknown on line 0
Composerのインストール
curl -sS https://getcomposer.org/installer | php
## PHP Warning: Module 'mbstring' already loaded in Unknown on line 0
# php7.2-mbstring , php.ini
# php.ini
php -i|grep Configure #
php composer.phar # Composer
mv composer.phar /usr/local/bin/composer # composer
composer config -g repo.packagist composer https://packagist.phpcomposer.com #
インストールNginx
ソースコードインストールとaptソースインストールの2つのインストール方法の参考があります.https://www.cnblogs.com/EasonJim/p/7806879.html
aptインストール
/usr/sbin/nginx:メインプログラム
/etc/nginx:プロファイルの保存
/usr/share/nginx:静的ファイルの保存
/var/log/nginx:ログの保存
関連コマンドservice nginx{start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}
仮想サイトの構成
vim /etc/nginx/sites-available/www.mysite.com
############## #####################
server {
listen 80;
server_name www.mysite.com;
root /mnt/hgfs/share_file/mysites/www; #
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# ,
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# php7.2-fpm.sock
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
##########www.mysite.com END####################
#
ln -s /etc/nginx/sites-available/www.mysite.com /etc/nginx/sites-enabled/www.mysite.com
/usr/sbin/nginx -t #
service nginx reload #
最後にwindowsのhostファイルを変更します
Dockerインストール
あとDockerの取り付け方が少し複雑なので、後で検討します
Mysqlのインストール
sudo apt-get install mysql-server-5.7 # 5.7
sudo netstat -tap | grep mysql #
mysql -u root -p # mysql
#
apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev
mysqlのrootパスワードとリモートアクセス権の構成
Mysql 5.7バージョンでプロファイルが安全に変更されました/etc/mysql/my.cnfプロファイルに[mysqld]を追加
port=3306 bind-address=0.0.0.0
cat /etc/mysql/debian.cnf # root
# mysql -uroot -p , root
mysql -udebian-sys-maint -pISU7sh43XuyX4n78 # ,
mysql> use mysql;
mysql> select host, user, plugin,authentication_string from user;
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('root'), PLUGIN='mysql_native_password' WHERE USER='root';
mysql> select host, user, plugin,authentication_string from user; # root plugin
mysql> flush privileges;
mysql> exit;
# mysql
service mysql restart
Redisのインストール
Redisサービスのインストール
apt-get install redis-server
redis-cli # Redis
プロファイルアドレス/etc/redis/redis.conf
Redis PHP拡張のインストール
wget https://github.com/phpredis/phpredis/archive/develop.zip #
apt install zip # zip
unzip develop.zip #
cd phpredis-develop/ #
phpize # configure 。 php7.2-dev ,
./configure # --with-php-config ,
make
make install # Installing shared extensions:/usr/lib/php/20170718/
ll /usr/lib/php/20170718/ # .so , redis.so
ll /etc/php/7.2/mods-available/ # php php.ini,
cp /etc/php/7.2/mods-available/sockets.ini /etc/php/7.2/mods-available/redis.ini
vim /etc/php/7.2/mods-available/redis.ini # redis.so
cd /etc/php/7.2/fpm/conf.d/
ln -s /etc/php/7.2/mods-available/redis.ini 20-redis.ini #fpm
cd /etc/php/7.2/cli/conf.d/
ln -s /etc/php/7.2/mods-available/redis.ini 20-redis.ini #cli
php -m # redis
service php7.2-fpm reload # php-fpm