❶ php8和php7不兼容
主要是MySQL8.0默認是utfmb4的格式,PHP默認的是UTF8格式。
解決方法:需要將MySQL8.0默認格式設置為UTF8,身份認證的加密方式不兼容導致的,MySQL8.0中默認方式為caching_sha2_password。
新建用老版加密方式初始化密碼的用戶即可,然後在my.cnf中添加一行。
❷ thinkphp支持php7嗎
您好,一般程序商發布的新版本都會兼容支持PHP7,ThinkPHP5~6新版本應該僅支持PHP7.x系。
❸ 如何在CentOS 7.3上安裝Apache,PHP 7.1和M6767ySQL
1初步說明
在本教程中,我使用IP地址為192.168.1.100的hostname server1.example.com 。 這些設置可能會有所不同,因此您必須在適當的情況下更換它們。
我會在這里添加EPEL repo來安裝最新的phpMyAdmin,如下所示:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release
要在shell上編輯文件,我將安裝nano編輯器。 如果您喜歡vi進行文件編輯,請跳過此步驟。
yum -y install nano
2安裝MySQL / MariaDB
MariaDB是原始MySQL開發人員Monty Widenius的MySQL分支。 MariaDB與MySQL兼容,我選擇使用MariaDB而不是MySQL。 運行此命令以安裝MariaDB:
yum -y install mariadb-server mariadb
然後,我們為MySQL創建系統啟動鏈接(以便每當系統啟動時,MySQL自動啟動)並啟動MySQL伺服器:
systemctl start mariadb.service
systemctl enable mariadb.service
設置MySQL根帳戶的密碼:
mysql_secure_installation
[root@server1 ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): <--ENTER
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n]
New password: <--yourmariadbpassword
Re-enter new password: <--yourmariadbpassword
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
proction environment.
Remove anonymous users? [Y/n] <--ENTER
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] <--ENTER
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a proction environment.
Remove test database and access to it? [Y/n] <--ENTER
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] <--ENTER
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[root@server1 ~]#
3安裝Apache
CentOS 7附帶apache 2.4。 Apache可以直接作為CentOS 7軟體包使用,因此我們可以這樣安裝:
yum -y install httpd
這里是安裝過程的截圖。
現在配置您的系統啟動Apache啟動時...
systemctl start httpd.service
systemctl enable httpd.service
為了能夠從外部訪問Web伺服器,我們必須打開防火牆中的HTTP(80)和HTTPS(443)埠。 CentOS上的默認防火牆是firewalld,可以使用firewalld-cmd命令配置。
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
現在將您的瀏覽器指向伺服器的IP地址,在我的情況下為http://192.168.1.100 ,您應該看到Apache佔位符頁面:
4安裝PHP
CentOS附帶的PHP版本相當舊(PHP 5.4),因此,我將在此步驟中顯示一些選項,從Remi存儲庫安裝更新的PHP版本,如PHP 7.0或7.1。
添加Remi CentOS存儲庫。
rpm -Uvhhttp://rpms.remirepo.net/enterprise/remi-release-7.rpm
安裝yum-utils,因為我們需要yum-config-manager實用程序。
yum -y install yum-utils
並運行yum更新
yum update
現在您必須選擇要在伺服器上使用哪個PHP版本。 如果你喜歡使用PHP 5.4,那麼繼續下一個命令。 要安裝PHP 7.0,請遵循第4.1章和PHP 7.1中的命令,使用第4.2章。
要安裝PHP 5.4,請運行以下命令:
yum -y installphp
4.1安裝PHP 7.0(可選)
我們可以安裝PHP 7.0和Apache PHP 7.0模塊,如下所示:
yum-config-manager --enable remi-php70
yum -y installphp php-opcache
4.2安裝PHP 7.1(可選)
如果要使用PHP 7.1,請使用:
yum-config-manager --enable remi-php71
yum -y installphp php-opcache
在這個例子中,在可下載的虛擬機中,我將使用PHP 7.1。
我們必須重新啟動Apache來應用更改:
systemctl restart httpd.service
5測試PHP /獲取有關您的PHP安裝的詳細信息
默認網站的文檔根目錄是/ var / www / html。 我們將在該目錄中創建一個小型的PHP文件(info.php),並在瀏覽器中調用它來測試PHP安裝。 該文件將顯示有關我們的PHP安裝的許多有用的細節,例如安裝的PHP版本。
nano /var/www/html/info.php
<?php
phpinfo();?>
現在我們在瀏覽器中調用該文件(例如http://192.168.1.100/info.php ):
如您所見,PHP 7.1正在工作,它正在通過Apache 2.0處理程序,如Server API行所示。 如果您進一步向下滾動,您將看到在PHP中已啟用的所有模塊。 MySQL沒有列出,這意味著我們還沒有在PHP中支持MySQL。
6在PHP中獲取MySQL支持
要在PHP中獲得MySQL支持,我們可以安裝php71w-mysql包。 安裝一些其他PHP模塊是一個好主意,也可能需要它們用於應用程序。 您可以搜索可用的PHP5模塊,如下所示:
yum search php
選擇您需要的並安裝它們:
yum -y install php-mysql
在下一步中,我將安裝一些常見的PHP模塊,CMS系統如Wordpress,Joomla和Drupal所需:
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstringphp-soap curl curl-devel
現在重新啟動Apache Web伺服器:
systemctl restart httpd.service
現在在您的瀏覽器中重新載入http://192.168.1.100/info.php並再次向下滾動到模塊部分。 你現在應該找到很多新的模塊,如Curl等。
如果您不再需要php信息輸出,那麼為了安全起見,請刪除該文件。
rm/var/www/html/info.php
7 phpMyAdmin安裝
phpMyAdmin是一個Web界面,您可以通過它來管理MySQL資料庫。
phpMyAdmin現在可以安裝如下:
yum -y install phpMyAdmin
現在我們配置phpMyAdmin。 我們更改Apache配置,以便phpMyAdmin不僅允許從localhost進行連接(通過注釋<RequireAny>節並添加「要求所有已授予」行):
nano /etc/httpd/conf.d/phpMyAdmin.conf
[...]
Alias /phpMyAdmin /usr/share/phpMyAdminAlias /phpmyadmin /usr/share/phpMyAdmin<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfMole mod_authz_core.c>
# Apache 2.4
# <RequireAny>
# Require ip 127.0.0.1
# Require ip ::1
# </RequireAny>
Require all granted
</IfMole>
<IfMole !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfMole>
</Directory>
<Directory /usr/share/phpMyAdmin/>
Options none AllowOverride Limit
Require all granted</Directory>
[...]
接下來,我們將phpMyAdmin中的身份驗證從cookie更改為http :
nano /etc/phpMyAdmin/config.inc.php
[...]$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?[...]
重新啟動Apache:
systemctl restart httpd.service
之後,您可以訪問http://192.168.1.100/phpmyadmin/下的phpMyAdmin :
8作為虛擬機下載
此設置可用於以ova / ovf格式(與VMWare和Virtualbox兼容)的虛擬機下載,以了解用戶的身份。
VM的登錄詳細信息
Linux root密碼是:howtoing。
Rhe MySQL的root密碼是:howtoing
請在第一次登錄時更改兩個密碼。
虛擬機的IP地址為192.168.1.100
❹ php7還會向下兼容嗎
會什麼與不會什麼的選擇罷了,學了那麼多,能綜合運用的才牛逼。
個人比較喜歡asp,asp.net,喜歡PHP,也喜歡java,那些討厭.net或者說沒前景的,恐怕還只活在自己的世界裡頭不知道u3d吧。
asp開發小型站點很便捷,PHP亦同,當然,選擇什麼不重要,個人一直認為,技術只是為各種應用場景服務的底層東西而已,比如某個策劃,某場活動亦或是某個it領域,沒必要去深究孰是孰非,非得對比個所以然,來個優勝劣汰,對我來說,鄙人愛不釋手也痛恨的就是php了,用它很方便,同時也煩人。
php也能開發應用程序,也可以很強大的構建一個web站點,雖說PHP針對的是後者,但是這開源的東西確實不怎麼穩妥:沒有統一的資料庫支持(雖說有了pdo支持,不過也有瓶頸,懂的人自己領悟),隨心所欲的增刪內置函數庫和類方法等等等等(我是指這個版本里頭有,下個版本可能就刪了,迭代幾個版本又放回來),這種時有時無隨心所欲的不規范,有時候愛莫能助,程序遷移和升級成本超出想像。
可能有噴子會噴了,什麼淘寶網路都用PHP,請問你真的見過他們家怎麼優化維護的么?不是"哪家大公司都在用,這個東西就好",是因為一旦選擇了就要做好,除非真的是沒法繼續用下去,因為換一套底層的東西往往成本和代價是最大的。
鄙人還是那個觀點,技術是為生產服務的,愛用什麼就用什麼,當然,最熟悉,最穩定可靠的是首選。所以鄙人在大型項目中一般不輕易選擇PHP(如果你用過,並且從PHP低版本到高版本持續維護某套程序,就知道維護成本多驚人,因為PHP向下兼容能力實在是噩夢)。
說.net不好的人,鄙人也有觀點,世界上沒有任何的東西絕對好或者絕對的壞,關鍵看自己,學了點皮毛就出來闖社會的多了去。但是這么多年過去了,.net很少聽說因為升級造成應用不能運行吧,這就是一個穩定的支持團隊造就穩定的應用規范體系,對比PHP這個就很明顯了,而java。估計又有噴子說什麼程序跨平台了,噴吧,.net也可以跨平台知道么?
說了一大堆,鄙人從來不覺得這些東西叫語言,只是技術范疇,一種生產工具而已,好不好,壞不壞,靠的是自己,工具本身無罪。