1. ホーム
  2. java

Ali cloud ubuntu16 システムで LAMP を構築し、tomcat、jdk をインストールし、最初の javaweb プロジェクトを tomcat にデプロイする 詳細手順

2022-02-14 19:17:42
<パス

1. ソフトウェアのソースを更新する

sudo apt-get update

sudo apt-get install apache2

apache2 -v


2. apacheのインストール

sudo apt-get install php7.0

php -v   


3. apacheのビルドが成功したかどうか確認する

vim /var/www/html/index.php


次のスタイル画像は、ビルドが成功したことを示すようです。

4. apacheのインストールが成功したかどうかを確認する

ブラウザでサーバーのIPにアクセスし、Apacheのウェルカム画面が表示されれば、以下のようにインストールは成功です。

5. phpのインストール

<?php phpinfo(); ? >


6. phpが正常にインストールされているか、バージョンを確認する

sudo apt-get install mcrypt


この時点でLAMP環境のセットアップが完了し、次はテストです

新しいindex.phpファイルを作成し、/var/www/html下のindex.htmlファイルを削除します(index.*ファイルはサイトのフロントページへのアクセスを示し、.phpファイルよりも.htmlが優先されます)。

sudo apt-get install php-mcrypt


挿入

sudo service apache2 restart


ブラウザのアドレスバーにサーバーのパブリックIPを入力し、phpの情報が表示されればインストール成功です!

7. php関連拡張機能のインストール

(1) php-mcypt(暗号化関数ライブラリ)のインストール
Linux用のmcryptを先にインストールする

extension=php_mbstring.dll


次に、PHP用のmcryptをインストールします。

sudo apt-get install php7.0-mysql


インストール後、Apache2を再起動します。

sudo service mysql restart


ブラウザからindex.phpにアクセスし、mcrypt拡張機能がオンになっていることが確認できれば、他の拡張機能のインストールと同様、成功です。

最後にファイルの中に

/etc/php/7.0/apache2/php.ini

コメントアウトの解除

拡張子=php_mbstring.dll
となります。
拡張子=php_mbstring.dll
に変更します。
拡張子=php_mbstring.so
次に
拡張子=php_mcrypt.dll

8. mysqlのインストール

sudo service apache2 restart


PHP 7.0-mysqlのインストール

sudo apt-get install phpmyadmin


MySQLを再起動する

sudo ln -s /usr/share/phpmyadmin /var/www/html/pma


Apacheを再起動する

update user set host="%" where user="root"; 


phpmyadminのインストール(操作性や後々のリモートログインアカウントの設定のためが望ましい)

flush privileges;


インストール時にパスワードなどの入力を求められるので、そのまま入力します。インストール完了後、デフォルトのディレクトリは/usr/share/phpmyadminで、Web経由でアクセスするために、Apacheのデフォルトディレクトリへのソフト接続を作成する必要があります

use mysql;

GRANT ALL PRIVILEGES ON *. * TO 'root'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;


ここでは、実際の PHPmyadmin ディレクトリを指す pma へのソフト接続を作成し、以下のようにブラウザで IP/pma と入力して直接 PHPmyadmin にアクセスするようにします。


mysqlのリモートアクセスの有効化

mysqlにログイン mysql -u root -p データベースを入力し、mysqlテーブルを選択し、ローカルアクセス専用のホストlocalhostを%に変更します。

root@iZwz956snfyrvah6yq8sa4Z:~# netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN


その後、パーミッションを更新します。

vim /etc/mysql/mysql.conf.d/mysqld.cnf


その後、再度設定を認証する

bind-address = 127.0.0.1


service mysql restart


次のページ
3306番ポートが開いているかどうか確認する

root@iZwz956snfyrvah6yq8sa4Z:~# netstat -an | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 


注意:これでポート3306はローカル(127.0.0.1)でのみアクセスできるようになりました。mysqlの設定ファイルを変更します。ここでは、/etc/mysql/mysql.conf.d/mysqld.cnfを指定しています。

Under [client], append.
default-character-set=utf8
Under [mysqld], append.
character-set-server=utf8
Under [mysql], append
default-character-set=utf8


を検索します。

service mysql restart


その前に#記号を追加してコメントアウトし、MySQLを再起動します。

mysql -u root -p
Enter the password
show variables like '%character%';

mysql> show variables like '%max_connections%';
+ -----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 214 |
+-----------------+-------+
row in set (0.00 sec)



3306番ポートをもう一度確認する

mysql> show variables like '%open_files_limit%';
+ ------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 1024 |
+------------------+-------+



あとはnavicatなどのリモートツールを使って、AliCloudサーバーのmysqlに接続すればOKです。

Mysqlの文字を変更する。
最初のステップで、mysqlの設定ファイルを開きます。

ulimit -a
root@jiajia:~# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 3824
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 3824
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited



保存して終了
注:私の [mysqld] は /etc/mysql/mysql.conf.d/mysqld.cnf にあります。
私の[mysql]は /etc/mysql/conf.d/mysql.cnf にあります。
/etc/mysql/debian.cnfに私の[client]がある。

ステップ2、mysqlの再起動

systemctl edit mysql.service




ステップ3:文字セットの確認

[Service]
LimitNOFILE=infinity
LimitMEMLOCK=infinity



<イグ
ステップ1:mysqlにログインして、実際のmysqlの接続数を確認する

/etc/systemd/system/mysql.service.d/override.conf



実際のmysqlの最大接続数は214しかなく、設定ファイルの1000と一致しないことから、mysqlの最大接続数設定が有効でないことがわかりました。
Linuxは全てがファイルなので、mysqlのファイル制限を確認しました。

ステップ2:mysqlが開くことのできるファイル数の確認

systemctl daemon-reload #Let SystemD reload the configuration file
systemctl restart mysql.service



mysqlのopen_filesが1024しかないことがわかったので、システムのファイル設定を見始めました。

ステップ3:システムファイルの確認

mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 9999 |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> show variables like '%open_files_limit%';
+------------------+---------+
| Variable_name | Value |
+------------------+---------+
| open_files_limit | 1048576 |
+------------------+---------+
1 row in set (0.00 sec)



システムファイルのオープンファイルが65535であることが判明しました。これは、このオープンファイルがmysqlによって使用されていないことを意味します。

回避策その1。

systemctlコマンドでmysql.serviceを編集してください。

service mysql restart 



以下を入力します。

ll redis.service
redis.service -> /lib/systemd/system/redis-server.service



上記の入力を保存すると、システムは自動的にそれを次のファイルにテキスト化します。

cd /lib/systemd/system
vi mysql.service



mysqlの設定ファイルを変更する
max_connections = 9999
これら2つのサービスを再起動します。

# MySQL systemd service file
[Unit]
Description=MySQL Community Server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
PermissionsStartOnly=true
ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/sbin/mysqld
ExecStartPost=/usr/share/mysql/mysql-systemd-start post
TimeoutSec=600
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755
LimitNOFILE=infinity #add
LimitMEMLOCK=infinity #new


mysqlにログインして見る

service mysql restart



変更は成功し、今後の設定ファイルの変更は次のコマンドで有効になります。

mysql> show variables like '%max_connections%';
+ -----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 3000 |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> show variables like '%open_files_limit%';
+------------------+---------+
| Variable_name | Value |
+------------------+---------+
| open_files_limit | 1048576 |
+------------------+---------+
1 row in set (0.00 sec)


解決策その2

mysql.service を直接変更し、/etc/systemd/system ディレクトリで systemctl が管理する他のサービスを見てみました。

cd /usr/tools


ここのサービスは実際にはソフト接続で /lib/systemd/system の下のサービスを利用していることがわかったので、このディレクトリの mysql サービスを直接修正することができます (mysql.service サービスは /lib/systemd/system の下にあります)

tar -zxvf tomcat-9.0.13.tar.gz

jdk1.8.0_20.tar.gz


mysql.serviceを変更します。

vim ~/.bashrc


保存後、mysqlサービスを再起動します。


export JAVA_HOME=/usr/tools/jdk1.8.0_20 
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=. :${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH



mysqlにログインすると、他のサーバーの最大接続数が3000に変更されていることが確認できました。

source ~/.bashrc

以上、mysqlの最大接続数の変更に成功しました。

9. jdkのインストール

jdk、tomcat のパッケージは比較的大きいため、Xftp を使用してパッケージをサーバーにアップロードすることをお勧めします。パッケージはインターネット上にありますし、私のブログからダウンロードすることもできます。 jdk+tomcat ダウンロードアドレス

では、インストールを始めましょう

先ほどアップロードしたzipファイルのアドレスを見つけてください、私の場合は

cd /usr/tools/apache-tomcat-9.0.13/bin

. /startup.sh


次に、2つのzipパッケージを別々に解凍します。

https://blog.csdn.net/shinoey/article/details/53641403


https://blog.csdn.net/qq_42986107/article/details/92094960


次に、エディタを有効にします。

cd /var/www/html


iを入力して編集し、以下を挿入して環境変数を編集し、escを押して編集を終了し、:wqを入力して変更を保存して終了します。

vi index.php


注:ここでは
export JAVA_HOME=/usr/tools/jdk1.8.0_20 を自分の jdk ディレクトリに設定し、その他はそのままにします。
ターミナル タイプ <?php Header("Location: http://写你的ip:8080/这里写你的项目名字/"); ? > を入力して変更を反映させた後、java -version と入力して jdk のバージョン情報を確認し、jdk が正常にインストールされたことを確認します。

上記のメッセージは、jdk が正常にインストールされたことを示しているようです。

tomcat アーカイブを解凍したので、あとは tomcat を起動するだけです。

cd /usr/tools/apache-tomcat-9.0.13/bin


. /startup.sh


しばらく待って、ip:8080 と入力すると、次の画像が表示されれば、tomcat が正常に構築されたことを意味します。

以上で、Webプロジェクトのデプロイメントを開始するための準備がすべて整いました。
javaプロジェクトを.warファイルにパッケージ化します。パッケージ化の方法がわからない場合は、次の2つのブログを参照してください。

Myeclipse javaWeb プロジェクトをパッケージ化する方法

https://blog.csdn.net/shinoey/article/details/53641403


IDEA用のjavawebプロジェクトをパッケージ化する方法

https://blog.csdn.net/qq_42986107/article/details/92094960


パッケージ化された .war ファイルを、サーバー tomcat の webapp ディレクトリに転送します。 Xshell+Xftp )

次に、直接入力します。 ip:8080/your-project-name/ をクリックすると、javawebプロジェクトにアクセスできます。もちろん、プロジェクト名を入力するのは面倒だし、文字数が多くて面白くないので、ipを入力するだけでアクセスできたら、どんなにカッコイイでしょう?従来のマッピングの方法はWebに記載されているので、興味のある方は検索してみてください、ここではもっと簡単な方法を紹介したいと思います。

cd /var/www/html


htmlディレクトリに入り、上でindex.phpのページを設定しませんでしたか?あれはphpが正常にインストールされたことを確認するためのもので、今度はindex.phpを書き換えて書く必要があります。

vi index.php


以下のコードを元のコードに上書きしてください。

<?php
Header("Location: http://写你的ip:8080/这里写你的项目名字/");  
? >


サーバーやtomcatを再起動しなくても、ipを直接入力することでプロジェクトにアクセスすることができます。なぜそうなるのか?説明する必要があります!
なぜなら /var/www/html javaプロジェクトに直接アクセスする必要がある場合、上記のコードをマッピングする必要があることは、前回の記事で述べました。このURLは、よくjavawebのURLにアクセスするの非常に開始されていません!?だから今、あなたは理由を知っている。

さて、これでphpプロジェクトにアクセスするのはさらに簡単になりましたので、この記事ではもう説明しませんよ。