溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

LAMP之一(模塊php方式)

發(fā)布時(shí)間:2020-07-17 19:22:44 來源:網(wǎng)絡(luò) 閱讀:853 作者:大蕃茄 欄目:web開發(fā)

linux+httpd+php模塊+mysql

rpm包的安裝方式



環(huán)境:

系統(tǒng): CentOS Linux release 7.1.1503 (Core)

yum源:epel,cdrom

主機(jī):

httpd+php
172.16.40.30
mysql
172.16.40.31

目的:

1、兩臺主機(jī)實(shí)現(xiàn)httpd+php和mysql服務(wù)。
2、httpd提供兩個(gè)虛擬主機(jī),一個(gè)虛擬主機(jī)提供phpMyAdmin,另一個(gè)虛擬主機(jī)提供wordpress。
3、為php安裝xcache。
4、為phpMyAdmin提供https;

LAMP之一(模塊php方式)


目錄:

一、httpd

二、php

三、mysql

四、安裝phpMyadmin和wordpress

五、為phpMyadmin虛擬主機(jī)啟用ssl。(包括建立私有CA)


我這里的selinux和iptables都在開啟狀態(tài),為了簡單我這里把它們都關(guān)閉了。

selinux:

[root@localhost ~]# getenforce      #查看selinux狀態(tài)。
Enforcing
[root@localhost ~]# setenforce 0    #設(shè)置selinux不阻止進(jìn)程,只記錄。當(dāng)前環(huán)境生效,重啟失效。
[root@localhost ~]# vim /etc/selinux/config    #修改配置文件, 重啟生效。
SELINUX=disabled

iptables:

[root@localhost ~]# systemctl stop firewalld        #關(guān)閉防火墻
[root@localhost ~]# systemctl disable firewalld        #開機(jī)不自動啟動。
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'


注意:在mysql上面127.0.0.1與localhost是不同的。127.0.0.1會用網(wǎng)絡(luò)套接字來通信。而 localhost用的才是unix_sock,本地文件。如果要用localhost通信,有可能要在/etc/php.ini中為3個(gè)連接器指定mysql 的sock文件所在位置。

mysql.default_socket =
pdo_mysql.default_socket=
mysql.default_socket =

一、httpd

1、安裝:

[root@localhost ~]# yum install httpd -y
[root@localhost ~]# rpm -ql httpd
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d
/etc/httpd/conf.modules.d/00-base.conf       #加載模塊
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf        #用以修改所使用的mpm。
/etc/httpd/conf.modules.d/00-proxy.conf      #代理相關(guān)
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
/etc/httpd/conf/httpd.conf        #主配置文件
.....

[root@localhost ~]# systemctl start httpd
[root@localhost ~]# ss -tnl
State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port 
LISTEN     0      128                                                 *:22                                                 *:*     
LISTEN     0      100                                         127.0.0.1:25                                                 *:*     
LISTEN     0      128                                                :::80                                                :::*     
LISTEN     0      128                                                :::22                                                :::*     
LISTEN     0      100                                               ::1:25                                                :::*     
[root@localhost ~]#

80端口啟動了。可以嘗試一下打開網(wǎng)頁了。

LAMP之一(模塊php方式)

工作正常。


主配置文件中的一些指令可以到官網(wǎng)查看,有專門介紹指令的,如我這里2.4版本的:

http://httpd.apache.org/docs/2.4/mod/directives.html

直接ctrl+f搜索。

LAMP之一(模塊php方式)


LAMP之一(模塊php方式)


2、虛擬主機(jī):

首先把/etc/httpd/conf/httpd.conf配置文件中的DocumentRoot關(guān)閉。

#DocumentRoot "/var/www/html"     #中心主機(jī)的網(wǎng)頁目錄,虛擬主機(jī)里面也要指定。

添加一個(gè)虛擬主機(jī)的配置文件:

[root@localhost httpd]# vim conf.d/vhosts.conf        #當(dāng)前目錄:/etc/httpd

<VirtualHost *:80>
    ServerName www.star.com
    DocumentRoot /web/www
    CustomLog "/var/log/httpd/www/access_log" combined
    ErrorLog "/var/log/httpd/www/error_log"
    <Directory "/web/www">
        Options None
        Require all granted 
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName myadm.star.com
    DocumentRoot /web/myadm
    CustomLog "/var/log/httpd/myadm/access_log" combined
    ErrorLog "/var/log/httpd/myadm/error_log"
    <Directory "web/myadm">
        Options None
        Require all granted 
    </Directory>
</VirtualHost>

創(chuàng)建所需目錄:

[root@localhost httpd]# mkdir -pv /web/{www,myadm} -pv
mkdir: created directory ‘/web’
mkdir: created directory ‘/web/www’
mkdir: created directory ‘/web/myadm’
[root@localhost httpd]# mkdir -pv /var/log/httpd/{www,myadm} 
mkdir: created directory ‘/var/log/httpd/www’
mkdir: created directory ‘/var/log/httpd/myadm’
[root@localhost httpd]#

給兩個(gè)虛擬主機(jī)分別來個(gè)網(wǎng)頁測試一下。

[root@localhost httpd]# vim /web/www/index.html
<h2>www.star.com</h2>

[root@localhost httpd]# vim /web/myadm/index.html
<h2>myadm.star.com</h2>


測試一下:

[root@localhost httpd]# httpd -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Syntax OK
[root@localhost httpd]#

這個(gè)錯(cuò)誤是因?yàn)樵谥髋渲梦募械膕erverName沒有配置,httpd會反解本機(jī)的IP地址,得出的結(jié)果如果與本機(jī)的主機(jī)名不適合,或者是根本就不能反解, 就會報(bào)這個(gè)錯(cuò)誤。 可以在主配置文件中指定serverName或在/etc/hosts中給個(gè)ip和本機(jī)主機(jī)名的條目。我這里就在主配置文件中指定了,名稱任意。我們用的是虛擬主機(jī),而虛擬主機(jī)里面也已經(jīng)指定serverName了。

下面我們所說的主機(jī)名都是表示FQDN而不是系統(tǒng)上的主機(jī)名。

ServerName www.star.com
[root@localhost httpd]# httpd -t
Syntax OK
[root@localhost httpd]# 
[root@localhost httpd]# systemctl reload httpd

還差一步,我們是用主機(jī)名來區(qū)分不同的虛擬主機(jī)的,如果用IP登錄只會解析到第一個(gè)虛擬主機(jī)上面。

所以在測試機(jī)的hosts的文件中加上IP與主機(jī)名的條目。linux系統(tǒng)在/etc/下面。 windows系統(tǒng)在C:\Windows\System32\drivers\etc下面。C表示系統(tǒng)盤。

LAMP之一(模塊php方式)

windows上面如果不能保存,很可能是因?yàn)闄?quán)限的問題, 在hosts屬性里面的安全里面設(shè)置用戶和權(quán)限。


我這里可以了,網(wǎng)頁測試一下:

LAMP之一(模塊php方式)

LAMP之一(模塊php方式)


二、php

注意:在mysql上面127.0.0.1與localhost是不同的。127.0.0.1會用網(wǎng)絡(luò)套接字來通信。而localhost用的才是 unix_sock,本地文件。如果要用localhost通信,要在/etc/php.ini中為3個(gè)連接器指定mysql的sock文件所在位置。

mysql.default_socket =
pdo_mysql.default_socket=
mysqli.default_socket =


1、安裝

[root@localhost ~]# yum install php php-mysql -y

php-mysql是php連接mysql的連接器(驅(qū)動)。

[root@localhost ~]# rpm -ql php-mysql
/etc/php.d/mysql.ini
/etc/php.d/mysqli.ini
/etc/php.d/pdo_mysql.ini
/usr/lib64/php/modules/mysql.so
/usr/lib64/php/modules/mysqli.so
/usr/lib64/php/modules/pdo_mysql.so

mysql   mysqli   pdo_mysql  是三種不同的連接器。 在以后編譯php的時(shí)候要選擇這三個(gè)的。

連接器介紹:http://php.net/manual/zh/mysqli.overview.php#mysqli.overview.mysqlnd


[root@localhost ~]# rpm -ql php
/etc/httpd/conf.d/php.conf            #關(guān)于php的設(shè)置
/etc/httpd/conf.modules.d/10-php.conf    #httpd加載php模塊
/usr/lib64/httpd/modules/libphp5.so    #php模塊
/usr/share/httpd/icons/php.gif
/var/lib/php/session                    #存儲session會話文件的目錄
[root@localhost ~]#


2、測試

rpm安裝的php不用怎么配置

注意:rpm安裝的php只支持prefork模型的httpd。如果要用work或event這種線程模型就要自己編譯php了。

分別給兩個(gè)虛擬主機(jī)測試文件。

[root@localhost ~]# vim /web/www/index.php

<h2>www.star.com</h2>
<?php
        phpinfo();
?>
[root@localhost ~]# vim /web/myadm/index.php

<h2>myadm.star.com</h2>
<?php
        phpinfo();
?>

測試:

[root@localhost ~]# httpd -t
Syntax OK
[root@localhost ~]# systemctl restart httpd

LAMP之一(模塊php方式)

LAMP之一(模塊php方式)


現(xiàn)在在不指定主頁的情況下還是優(yōu)先找的index.html??梢栽谥髋渲梦募信渲靡幌拢?/p>

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

在index.html前面加上index.php


3、xcache

xcache   epel源中的rpm包可能有問題, 性能不升反降。不知道是什么問題。
要編譯安裝xcache。


安裝xcache:

要先安裝php-devel。 然后在xcache目錄里面執(zhí)行phpize,

php-config和phpize是php的配置接口,添加第三方的模塊。

[root@localhost xcache-3.2.0]# yum install php-devel -y
[root@localhost xcache-3.2.0]# phpize

編譯很簡單就兩個(gè)選項(xiàng),一個(gè)是啟用xcache的擴(kuò)功能, 一個(gè)是php-config,要指定php-config的位置。

[root@localhost xcache-3.2.0]# ./configure --enable-xcache  --with-php-config=/usr/bin/php-config
[root@localhost xcache-3.2.0]# make
[root@localhost xcache-3.2.0]# make install

[root@localhost xcache-3.2.0]# cp xcache.ini /etc/php.d/

安裝完xcache的時(shí)候?yàn)樘崾緓cache模塊所在路徑:

Installing shared extensions:     /usr/lib64/php/modules/

如果php不能找到xcache模塊,需要手動添加到xcache.ini文件中。
把安裝xcache完成以后顯示的那個(gè)路徑寫在extension指令后面,不過要指定xcache.so
如:extension = /usr/lib64/php/modules/xcache.so

[root@localhost xcache-3.2.0]# httpd -t
Syntax OK
[root@localhost conf.d]# systemctl reload httpd

網(wǎng)頁測試一下:

LAMP之一(模塊php方式)

LAMP之一(模塊php方式)

這個(gè)info頁面,在用ab測試的時(shí)候,不用xcache是600/sec。而用了以后反而變成了300/sec。 一會兒再試試phpMyadmin的頁面看看。



三、mysql

1、安裝:

[root@localhost ~]# yum install mariadb-server -y
[root@localhost ~]# systemctl start mariadb

進(jìn)入mysql添加wordpress要用到的庫和用戶。

MariaDB [(none)]> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'wpuser'@'172.16.40.30' IDENTIFIED BY 'abcdefg';
Query OK, 0 rows affected (0.00 sec)

給root用戶添加密碼,不然在phpMyadmin中不能登錄:

MariaDB [(none)]> UPDATE mysql.user SET password=PASSWORD('testpasswd') WHERE user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)


四、安裝phpMyadmin和wordpress

https://files.phpmyadmin.net/phpMyAdmin/4.4.15.2/phpMyAdmin-4.4.15.2-all-languages.tar.xz

最新的4.5.3只有php5.5或以上版本才可以用。rpm安裝的php版本是5.4.16.


https://cn.wordpress.org/wordpress-4.4.1-zh_CN.zip

刪除/web/www和/web/myadmin里面的文件

分別把phpMyadmin和wordpress里面的文件放到/web/www和/web/myadmin里面。

我這里把wordpress放到了www里面。這是在/web/目錄下面操作的。

[root@localhost web]# rm www/* -rf
[root@localhost web]# mv wordpress/* www/
[root@localhost web]# rm myadm/* -rf
[root@localhost web]# mv phpMyAdmin-4.4.15.2-all-languages/* myadm/

先來設(shè)置一下phpMyadmin。

[root@localhost web]# cd myadm
[root@localhost myadm]# cp config.sample.inc.php config.inc.php
[root@localhost myadm]# openssl rand -base64 15
eqt6V09NTIq4K8aILMz0
[root@localhost myadm]# vim config.inc.php

LAMP之一(模塊php方式)

把生成的隨機(jī)碼放到里面。

LAMP之一(模塊php方式)

上面這個(gè)地址把原來的localhost改成mysql數(shù)據(jù)庫所在位置。


網(wǎng)頁訪問一下試試:

LAMP之一(模塊php方式)

安裝mbsting,多字符處理庫。如果沒有這個(gè),phpMyAdmin不能支持漢字。

[root@localhost myadm]# yum install php-mbstring -y
[root@localhost myadm]# systemctl reload httpd

然后就可以用root登錄了。

LAMP之一(模塊php方式)


如果跟我這一樣總是提示無法登錄,可以重新復(fù)制一下config.sample.inc.php文件試試。

ab測試一下看看。把/etc/php.d/xcache.ini文件移走。要reload啊。

我這是筆記本,速度太慢了。

Requests per second:    25.91 [#/sec] (mean)

再把文件放回去。

[root@localhost yum.repos.d]# ab -n 1000 -c 100 http://myadm.star.com/index.php
.....
Requests per second:    125.05 [#/sec] (mean)
.....
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    2   3.9      1      16
Processing:    49  769 170.4    783    1483
Waiting:       23  725 158.2    750    1288
Total:         51  771 167.8    783    1484

Percentage of the requests served within a certain time (ms)
  50%    783
  66%    815
  75%    838
  80%    852
  90%    916
  95%    999
  98%   1093
  99%   1173
 100%   1484 (longest request)


安裝wordpress:

進(jìn)入www的目錄。

[root@localhost www]# cp wp-config-sample.php wp-config.php
[root@localhost www]# vim wp-config.php

LAMP之一(模塊php方式)


測試:

我這里訪問http://www.star.com/

LAMP之一(模塊php方式)


LAMP之一(模塊php方式)


LAMP之一(模塊php方式)



五、給myadm虛擬主機(jī)提供https。

首先要建立私有CA。

我這里就用httpd這臺主機(jī)來做CA了。這個(gè)CA是靜態(tài)的,由openssl軟件提供,不是服務(wù)程序,所以不會占用什么資源。

CA工作目錄,是在/etc/pki/tls/openssl.cnf文件中設(shè)置的。默認(rèn)是在/etc/pki/CA

/etc/pki/tls/openssl.cnf中關(guān)于CA的設(shè)置。

LAMP之一(模塊php方式)

創(chuàng)建ca私鑰。

[root@localhost CA]# pwd
/etc/pki/CA
[root@localhost CA]# (umask 077;openssl genrsa -out private/cakey.pem 4096)
Generating RSA private key, 4096 bit long modulus
............................++
.........++
e is 65537 (0x10001)
[root@localhost CA]# ll private/
total 4
-rw-------. 1 root root 3243 Jan 20 03:19 cakey.pem

CA自簽證書:

[root@localhost CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem
.....
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BEIJING
Locality Name (eg, city) [Default City]:BEIJING
Organization Name (eg, company) [Default Company Ltd]:LinuxOPS
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server's hostname) []:ca.star.com
Email Address []:
[root@localhost CA]#

創(chuàng)建所必須的文件:

[root@localhost CA]# touch index.txt
[root@localhost CA]# touch serial
[root@localhost CA]# echo 00 > serial        #這個(gè)是序列號文件,要指定序列號的起始

CA完成了,也就兩步。剩下的就是為httpd創(chuàng)建私鑰、生成證書申請然后簽署就可以了。

我這里在/etc/httpd/目錄下面建立一個(gè)ssl目錄用以存儲私鑰和證書。這個(gè)目錄任意,只要一會兒在httpd配置文件中指定私鑰和證書的路徑就可以。

[root@localhost CA]# cd /etc/httpd
[root@localhost httpd]# (umask 077;openssl genrsa -out ssl/myadm.key 2048)
Generating RSA private key, 2048 bit long modulus
.......................................................................................................................+++
.................+++
e is 65537 (0x10001)
[root@localhost httpd]# openssl req -new -key ssl/myadm.key -out ssl/myadm.csr
.....
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BEIJING
Locality Name (eg, city) [Default City]:BEIJING
Organization Name (eg, company) [Default Company Ltd]:LinuxOPS
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server's hostname) []:myadm.star.com
.....

這里的地區(qū)要一樣,公司好像也要一樣,域名可以不一樣。

上面生成的是證書申請,現(xiàn)在我們來簽署。

[root@localhost httpd]# openssl ca -in /etc/httpd/ssl/myadm.csr -out /etc/httpd/ssl/myadm.crt
.....
Certificate is to be certified until Jan 18 19:48:15 2017 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[root@localhost httpd]#
[root@localhost httpd]# ll ssl
total 16
-rw-r--r--. 1 root root 5718 Jan 20 03:48 myadm.crt
-rw-r--r--. 1 root root 1009 Jan 20 03:32 myadm.csr
-rw-------. 1 root root 1679 Jan 20 03:31 myadm.key
[root@localhost httpd]#

注意:CA與httpd是沒有關(guān)系的,雖然都使用openssl命令。 如果CA在另一臺主機(jī)上面,我們也只是要把csr文件發(fā)到CA的主機(jī),CA簽署完以后再發(fā)回來而已。


還有,因?yàn)槲覀兪鞘褂玫乃接蠧A。客戶端的主機(jī)上面沒有CA的根證書,所以要把CA的自簽證書發(fā)給客戶端。就是/etc/pki/CA/cacert.pem。

一些公有CA不用這樣做的原因是因?yàn)橄到y(tǒng)或?yàn)g覽器已經(jīng)自帶那些CA的根證書了。

既然是私有CA,系統(tǒng)或?yàn)g覽器上肯定是沒有了。這么做的目的,是讓瀏覽器信任由此CA所頒發(fā)的證書。

我這里復(fù)制到我的主機(jī)上面了,windows的系統(tǒng)。

LAMP之一(模塊php方式)

火狐瀏覽器是在選項(xiàng)--高級--證書--查看證書--證書機(jī)構(gòu)--導(dǎo)入,找到證書文件導(dǎo)入即可。

Chrome瀏覽器在設(shè)置--顯示高級設(shè)置--管理證書--受信任的根證書頒發(fā)機(jī)構(gòu)--導(dǎo)入即可。



設(shè)置httpd支持ssl

myadm.csr文件現(xiàn)在沒有用了,可以刪除。

安裝ssl模塊。

[root@localhost httpd]# yum install mod_ssl -y
[root@localhost httpd]# rpm -ql mod_ssl
/etc/httpd/conf.d/ssl.conf                #ssl的設(shè)置文件
/etc/httpd/conf.modules.d/00-ssl.conf    #加載ssl模塊的。
/usr/lib64/httpd/modules/mod_ssl.so        #ssl模塊
/usr/libexec/httpd-ssl-pass-dialog
/var/cache/httpd/ssl
[root@localhost httpd]#


ssl是基于IP地址的,在單IP的主機(jī)上面只能用一個(gè)ssl的連接。而客戶端訪問的地址一定要是證書里面顯示的主機(jī)名。我們在服務(wù)器上要做的就是要正確的把這個(gè)請求解析到正確的虛擬主機(jī)。

https的端口是443。

現(xiàn)在在conf.d/ssl.conf配置文件中除了一般ssl的設(shè)置以外,還有一個(gè)443端口的虛擬主機(jī)。而vhosts文件

中的phpMyadmin虛擬主機(jī)要用ssl也要以443端口。所以我這里就把ssl.conf文件中帶的虛擬主機(jī)給注釋了。 并把所需要的指令放到vhosts文件中去。

LAMP之一(模塊php方式)


現(xiàn)在的vhosts配置文件。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" %{SSL_PROTOCOL}x %{SSL_CIPHER}x " custom1
#自定義日志格式,加入了顯示ssl協(xié)議版本和加密協(xié)議。
<VirtualHost *:80>
        ServerName www.star.com
        DocumentRoot /web/www
        CustomLog "/var/log/httpd/www/access_log" combined
        ErrorLog "/var/log/httpd/www/error_log"
        <Directory "/web/www">
                Options None
                Require all granted
        </Directory>
</VirtualHost>

<VirtualHost *:443>
        ServerName myadm.star.com
        DocumentRoot /web/myadm
        CustomLog "/var/log/httpd/myadm/access_log" custom1    #使用新定義的日志格式
        ErrorLog "/var/log/httpd/myadm/error_log"
        SSLEngine on                                    #啟用ssl引擎
        SSLProtocol all -SSLv2                          #使用所有ssl協(xié)議版本,除了SSLV2版本。
        SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5         #這個(gè)也可以不加,我直接復(fù)制過來了。
        SSLCertificateFile /etc/httpd/ssl/myadm.crt       #證書路徑  
        SSLCertificateKeyFile /etc/httpd/ssl/myadm.key    #私鑰路徑

        <Directory "web/myadm">
                Options None
                Require all granted
        </Directory>
</VirtualHost>


LAMP之一(模塊php方式)


虛擬主機(jī)如果非要有優(yōu)先級的話:IP>端口>FQDN。

所以這里有個(gè)有意思的地方,訪問https://www.star.com/會怎么樣。443端口,會優(yōu)先使用端口的虛擬主機(jī),所以會訪問phpMyadmin的虛擬主機(jī)。但是訪問名稱與證書中的主機(jī)名不同。所以:

LAMP之一(模塊php方式)



而www.star.com是沒有問題的。

LAMP之一(模塊php方式)


完成。 謝謝瀏覽。 LAMP之一(模塊php方式)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI