Ali cloud ubuntu16 システムで LAMP を構築し、tomcat、jdk をインストールし、最初の javaweb プロジェクトを tomcat にデプロイする 詳細手順
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プロジェクトにアクセスするのはさらに簡単になりましたので、この記事ではもう説明しませんよ。
関連
-
springboot project MIMEタイプ text/htmlで転送された静的ファイルを読み込む。
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
リソースリーク:'sc'がクローズされない
-
ajaxでエクセルをアップロードする
-
トークン "{" のシンタックス エラー、このトークンの後に { があるはずです。
-
比較方式がその一般契約に違反している。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
Android Studio 3.1.2 で v4, v7 パッケージが見つからない シンボル 'AppCompatActivity' を解決できない
-
プロジェクトの依存関係を解決できなかった 解決
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
linux run jarfile Invalid or corrupt jarfile error.
-
Exception: java.util.NoSuchElementException: 行が見つかりません
-
JAVA のエラーです。公開型***は、独自のファイルで定義する必要があります***。
-
Android TextViewの行間解析
-
Spring MVC アノテーションエラーです。引数型[java.lang.String]の名前が利用できません。
-
エコー文字列を決定するためのjavaの簡単な実装をいくつか紹介します。