『壹』 php怎麼獲取表單提交的數據啊
一、用file_get_contents以get方式獲取內容,需要輸入內容為:
1、<?php
2、$url='http://www.domain.com/?para=123';
3、$html = file_get_contents($url);
4、echo $html;
5、?>
二、用file_get_contents函數,以post方式獲取url,需要輸入內容為
1、<?php
2、$url = 'http://www.domain.com/test.php?id=123';
3、$data = array ('foo' => 'bar');
4、$data = http_build_query($data);
5、$opts = array (
6、'http' => array (
7、 'method' => 'POST',
8、 'header'=> "Content-type: application/x-www-form-urlencoded " .
9、 "Content-Length: " . strlen($data) . " ",
10、 'content' => $data
11、)
12、);
13、$ctx = stream_context_create($opts);
14、$html = @file_get_contents($url,'',$ctx);
15、?>
三、用fopen打開url,以get方式獲取內容,需要輸入內容為
1、<?php
2、$fp = fopen($url, 'r');
3、$header = stream_get_meta_data($fp);//獲取信息
4、while(!feof($fp)) {
5、$result .= fgets($fp, 1024);
6、}
7、echo "url header: {$header} <br>":
8、echo "url body: $result";
9、fclose($fp);
10、?>
四、用fopen打開url,以post方式獲取內容,需要輸入內容為
1、<?php
2、$data = array ('foo2' => 'bar2','foo3'=>'bar3');
3、$data = http_build_query($data);
4、$opts = array (
5、'http' => array (
6、'method' => 'POST',
7、'header'=> "Content-type: application/x-www-form-urlencoded Cookie:cook1=c3;cook2=c4 " .
8、"Content-Length: " . strlen($data) . " ",
9、'content' => $data
10、)
11、);
12、$context = stream_context_create($opts);
13、$html = fopen('http://www.test.com/zzzz.php?id=i3&id2=i4','rb' ,false, $context);
14、$w=fread($html,1024);
15、echo $w;
16、?>
五、用fsockopen函數打開url,以get方式獲取完整的數據,包括header和body,需要輸入內容為
1、?php
2、function get_url ($url,$cookie=false)
3、{
4、$url = parse_url($url);
5、$query = $url[path]."?".$url[query];
6、echo "Query:".$query;
7、$fp = fsockopen( $url[host], $url[port]?$url[port]:80 , $errno, $errstr, 30);
8、if (!$fp) {
9、return false;
10、} else {
11、$request = "GET $query HTTP/1.1 ";
12、$request .= "Host: $url[host] ";
13、$request .= "Connection: Close ";
14、if($cookie) $request.="Cookie: $cookie ";
15、$request.=" ";
16、fwrite($fp,$request);
17、while(!@feof($fp)) {
18、$result .= @fgets($fp, 1024);
19、}
20、fclose($fp);
21、return $result;
22、}
23、}
24、//獲取url的html部分,去掉header
25、function GetUrlHTML($url,$cookie=false)
26、{
27、$rowdata = get_url($url,$cookie);
28、if($rowdata)
29、{
30、$body= stristr($rowdata," ");
31、$body=substr($body,4,strlen($body));
32、return $body;
33、}
34、 return false;
35、}
36、?>
『貳』 u盤u啟動uo
u盤u啟動uo(u盤u啟動進不入win8pe系統)最近在家看孩子的空隙,在自己一台老舊的DELL電腦上安裝了cent os7作為平常的開發伺服器,廢話不多說,下面開始正文:
一、首先准備下載系統鏡像:CentOs7(因為我的電腦是64的所以鏡像也是64的)
網路網盤下載鏈接:
https://pan..com/s/1gFalaeQD7ZDH2s1UO_YYIw?pwd=fo05
二、製作U盤系統盤
下載好CentOS7的系統鏡像了,我們需要一個系統啟動盤。
這里用到了一個工具:UltraISo.
因為是教學使用所以時間選擇試用就好
注:請勿用於商用,如有版權糾紛,與博主無關,
打開UltraISO軟體,選擇 「文件」 -> 「打開」 選擇linux系統鏡像(iso文件)並 「打開」
選擇要安裝的鏡像
插入U盤,選擇 「啟動」 -> 「寫入硬碟鏡像」,硬碟驅動器選擇做為系統盤的U盤,其他選項不需要改動。
確認寫入的硬碟,以及寫入方式
點擊 」寫入」 ,等待刻錄完成即可。
看到刻錄成功就可以了
三、使用U盤安裝CentOS7系統
1、 插入剛剛製作的系統U盤進入BIOS,更改U盤為第一啟動項。f10保存並重啟。
2、 進入centos安裝界面。不用管有幾個選項,選中第一個 按 回車鍵
3、 進入圖形界面如果不出現報錯就是成功了,可以正常安裝操作系統了。
選擇語言,時區
磁碟分區(因為是最小安裝擇軟體包所有沒有選)
磁碟分區(因為是最小安裝擇軟體包所有沒有選)
開始安裝
設置root密碼
4. 安裝之後重啟後關機移除U盤在開機即可正常使用。
四、開始搭建LNMP環境
因為是筆記本改的伺服器一直都不會關機,這時候需要:合上筆記本蓋子(顯示屏關閉),但是SSH遠程在操作此機器,則希望合蓋不睡眠(包括網路正常使用)
編輯下列文件:/etc/systemd/logind.conf
#HandlePowerKey按下電源鍵後的行為,默認power off
#HandleSleepKey 按下掛起鍵後的行為,默認suspend
#HandleHibernateKey按下休眠鍵後的行為,默認hibernate
#HandleLidSwitch合上筆記本蓋後的行為,默認suspend(改為lock;即合蓋不休眠)在原文件中,還要去掉前面的#
運行:systemctl restart systemd-logind就會生效.
一、准備資源(源碼安裝)
nginx 源:https://nginx.org/download/
mysql 電腦 源:http://tel.mirrors.163.com/mysql/Downloads/
php 源:https://www.php.net/releases/
二、安裝nginx
1.下載Nginx
cd /home/application/tools
wget http://nginx.org/download/nginx-1.20.0.tar.gz
tar xf nginx-1.20.0.tar.gz
2.安裝Nginx依賴
pcre-devel 讓nginx擁有正則的能力,rewrite等都需要正則匹配
openssl-devel 讓nginx擁有開啟https的能力。
yum install -y pcre-devel openssl-devel
3.創建Nginx管理用戶
useradd -s /sbin/nologin -M nginx
4.編譯配置Nginx
–prefix=/application/nginx-1.14.0 置編譯安裝目錄
–user=nginx 配置nginx的管理用戶為nginx用戶
–group=nginx 配置nginx的管理組為nginx組
–with-http_stub_status_mole 配置使用Nginx的監控模塊
–with-http_ssl_mole 配置應用認證模塊(https需要此模塊,需要openssl-devel依賴
cd /home/application/tools/nginx-1.20.0
./configure 電腦 --prefix=/application/nginx-1.14.0 --user=nginx --group=nginx --with-http_stub_status_mole --with-http_ssl_mole
5.編譯安裝Nginx
make && make install
6.為Nginx安裝目錄創建軟鏈接(方便以後管理)
ln -s /home/application/nginx-1.20.0/ /home/application/nginx
7.為Nginx命令創建軟鏈接加進root環境變數(方便使用)
ln -s /home/application/nginx/sbin/nginx /sbin/
8.精簡化Nginx配置文件
sed -i "/^$/d;/#/d" /home/application/nginx/conf/nginx.conf
9.添加systemctl啟動腳本
cat > /usr/lib/systemd/system/nginx.service << EOF
[Unit]
Description=nginx
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStartPre=/application/nginx/sbin/nginx -t -c /application/nginx/conf/nginx.conf
ExecStart=/application/nginx/sbin/nginx 電腦 -c /application/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
10.啟動Nginx 並且 查看Nginx進程
nginx或者systemctl start nginx
ps -ef | grep nginx
11.測試Nginx服務埠(80)
ss -lnt | grep 80
12.curl測試Nginx首頁(有看到Welcome to nginx!就是成功了)
curl -s 本機IP
13.把Nginx添加到啟動項(在末尾添加以下命令:#開機啟動Nginx nginx)
cd /etc/rc.d && chmod +x rc.local && vim rc.local
14.重新載入nginx配置
nginx -s reload
三、安裝MYSQL
1.安裝MySQL依賴環境
ncurses-devel提供字元終端處理庫
lio-devel包的作用是為了支持同步I/O
yum install -y bison-devel ncurses-devel lio-devel gcc gcc-c++ automake autoconf numactl
2.刪除mariadb組件電腦
rpm -qa | grep mariadb
[結果1]
[結果2]
……
yum remove [結果1] [結果2] ……
3.下載MySQL
cd /home/application/tools
wget http://tel.mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
4.解壓MySQL5.7
tar xf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /home/application
mv /home/application/mysql-5.7.38-linux-glibc2.12-x86_64 /home/application/mysql-5.7.38
ln -s /home/application/mysql-5.7.38/ /home/application/mysql
5.創建管理用戶&&授權
useradd -s /sbin/nologin -M mysql
chown -R mysql.mysql /home/application/mysql-5.7.38/
6.創建目錄和文件並且分配屬主和屬組
mkdir -p /data/mysql/{data,logs}
touch /data/mysql/logs/{mysql-error.log,mysql-slow.log}
chown -R mysql.mysql /data/mysql
mkdir /var/run/mysql
chown -R mysql.mysql 電腦 /var/run/mysql
7.初始化資料庫
–initialize-insecure選項參數可以不自動生成初始root密碼。
/home/application/mysql/bin/mysqld --initialize-insecure --basedir=/home/application/mysql/ --datadir=/data/mysql/data --user=mysql
8.復制腳本及PATH變數賦值
cp /home/application/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
echo 'PATH=$PATH:/home/application/mysql/bin' >> /etc/profile
source /etc/profile
9.編輯配置文件
vim /etc/my.cnf
[mysql]
# CLIENT #
port = 3306
socket = /tmp/mysql.sock
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /tmp/mysql.sock
pid-file = /var/run/mysql/mysql.pid
basedir = /home/application/mysql
server-id = 1
port = 3306
default-time-zone = '+08:00'
# MyISAM #
key-buffer-size = 32M
myisam-recover-options = FORCE,BACKUP
# SAFETY #
max-allowed-packet = 16M
max-connect-errors = 1000000
skip-name-resolve
#sql-mode = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_VALUE_ON_ZERO
sql-mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_VALUE_ON_ZERO
sysdate-is-now = 1
innodb = FORCE
secure-file-priv = ''
# DATA STORAGE #
datadir = /data/mysql/data/
# BINARY LOGGING #
log-bin = /data/mysql/data/mysql-bin
expire-logs-days = 14
binlog-format = mixed
sync-binlog = 1
#GTID:
gtid-mode = on
enforce-gtid-consistency = on
# CACHES AND LIMITS #
tmp-table-size = 32M
max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
max-connections = 500
thread-cache-size = 50
open-files-limit = 65535
table-definition-cache = 1024
table-open-cache = 200
# INNODB #
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-log-file-size = 256M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table = 1
innodb-buffer-pool-size = 8G
# LOGGING #
log-error = /data/mysql/logs/mysql-error.log
log-queries-not-using-indexes = 1
slow-query-log = 1
slow-query-log-file = /data/mysql/logs/mysql-slow.log
10.啟動MySQL
/etc/init.d/mysqld start
11.初始化root密碼
mysql_secure_installation
==========================================================================
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No: n
New password: <==此處輸入新密碼(如果低於八位數密碼,稍後會有系統提示)
Re-enter new password: <==此處重復輸入新密碼
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- 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? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
12.把MySQL添加進啟動項
cd /etc/rc.d && chmod +x rc.local && vim rc.local
#開機啟動mysql
mkdir -p /var/run/mysql
chown -R mysql.mysql /var/run/mysql
/etc/init.d/mysqld start
14.重啟MySQL
/etc/init.d/mysqld restart
四、安裝PHP
1.預先安裝必要的依賴
yum install -y wget gcc gcc-c++ autoconf automake libtool make libxml2 libxml2-devel openssl openssl-devel sqlite-devel libcurl
2.下載解壓PHP
cd /home/application/tools
wget wget https://www.php.net/distributions/php-8.1.11.tar.gz
tar xf php-8.1.11.tar.gz -C /home/application
3.編譯配置php
./configure --prefix=/home/application/php-8.1.11 --with-config-file-path=/home/application/php-8.1.11/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-zlib --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-ftp --enable-gd-jis-conv --with-openssl --with-mhash --enable-pcntl --enable-sockets --enable-soap --with-gettext --enable-fileinfo --enable-opcache --with-pear --with-ldap=shared --without-gdbm
編譯報錯處理
錯誤1
checking for libcurl >= 7.29.0... no
configure: error: Package requirements (libcurl >= 7.29.0) were not met:
No package 'libcurl' found
解決方案
yum search libcurl
已載入插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.e.cn
* extras: mirrors.ustc.e.cn
* updates: mirrors.ustc.e.cn
======== N/S matched: libcurl =============
libcurl-devel.i686 : Files needed for building applications with libcurl
libcurl-devel.x86_64 : Files needed for building applications with libcurl
libcurl.i686 : A library for getting files from web servers
libcurl.x86_64 : A library for getting files from web servers
perl-WWW-Curl.x86_64 : Perl extension interface for libcurl
python-pycurl.x86_64 : A Python interface to libcurl
發現 libcurl-devel.x86_64 庫需要安裝。
yum install -y libcurl-devel.x86_64
錯誤2
checking for icu-uc >= 50.1 icu-io icu-i18n... no
configure: error: Package requirements (icu-uc >= 50.1 icu-io icu-i18n) were not met:
No package 'icu-uc' found
No package 'icu-io' found
No package 'icu-i18n' found
解決方案
yum -y install libicu-devel
錯誤3
configure: error: Cannot find ldap.h
解決方案
yum install openldap openldap-devel -y
錯誤4
configure: error: Cannot find ldap libraries in /usr/lib.
解決方案
cp -frp /usr/lib64/libldap* /usr/lib/
錯誤5
configure: error: Package requirements (oniguruma) were not met:
解決方案
yum install https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-6.9.8-1.el7.remi.x86_64.rpm
yum install https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-devel-6.9.8-1.el7.remi.x86_64.rpm
重新編譯,出現上面的這個代碼表示編譯成功
4.安裝php
make && make install
5.創建軟鏈接(方便以後管理)
ln -s /home/application/php-8.1.11/bin/php /usr/local/bin/php
6.測試
php -v
PHP 8.1.11 (cli) (built: Nov 7 2022 15:35:02) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.11, Copyright (c) Zend Technologies
7.修改配置文件
# 源碼包 php-8.0.24
cp /home/application/php-8.1.11/php.ini-proction /home/application/php-8.1.11/etc
cd /home/application/php-8.1.11/etc
cp php.ini-proction php.ini
cd /home/application/php-8.1.11/etc
cp php-fpm.conf.default php-fpm.conf
cd /home/application/php-8.1.11/php-fpm.d
cp www.conf.default www.conf
# 修改www.conf文件
# 監聽方式為sock
;listen = 127.0.0.1:9000
listen = /tmp/www.sock
8.開機自啟
# 源碼包 php-8.1.11/sapi/fpm
cp /home/application/php-8.1.11/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm-8.1.11.service
server {
listen 80;
server_name www.paul.test;
root /home/web/wwwroot;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index 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_pass unix:/tmp/www.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
9.啟動php-fpm
cp /home/application/php-8.1.11/sapi/fpm/php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
php-fpm的啟動參數
#測試php-fpm配置/etc/init.d/php-fpm -t
/etc/init.d/php-fpm -c /home/application/php-8.1.11/etc/php.ini -y /home/application/php-8.1.11/etc/php-fpm.conf -t
#啟動php-fpm /etc/init.d/php-fpm
/etc/init.d/php-fpm -c /home/application/php-8.1.11/etc/php.ini -y /home/application/php-8.1.11/etc/php-fpm.conf
五、系統部署
1. 在系統部署之前,務必使系統時間、MySQL時間、php時間與當地時間保持一致,即時區一致,比如都是東八區。
2. 防火牆
查看防火牆是否開啟
firewall-cmd --state
如果沒有 安裝:yum install -y firewalld
啟動:systemctl start firewalld
設置開機自啟動:systemctl enable firewalld
這里通過開放一下httpd和php80的埠
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
重新載入防火牆
firewall-cmd --reload
六、驗證
vim /phpinfo.php
按i進入編輯模式輸入
按Esc鍵後,輸入:wq並回車,保存關閉文件
在本地Windows主機(同區域網),打開瀏覽器。
在瀏覽器的地址欄輸入http://新安裝的CentOSIP地址/phpinfo.php進行訪問。
訪問結果如下圖所示,表示LNMP環境部署成功。
到這里CentOS7 和 LNMP服務已經基本搭建完畢了!!!
後面會持續更新各服務的自動啟動相關腳本 謝謝!!!
感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助!
電腦 電腦
『叄』 Linux 網站項目發布要做哪些配置
發布伺服器:
SFTP用戶名:
SFTP密碼:
TelNet用戶名:
TelNet密碼:
MySql 5.0及以上版本
Php 5.0及以上版本
Apache 2.0及以上版本
主站綁定域名:www.v-ec.com
默認首頁:index.html
設置php解析htm和html擴展名
博客綁定域名:www.w3cgroup.com
默認首頁:index.php
網站目錄結構:
v-ec(主站)
upload: 寫許可權
w3cgroup(博客)
upload: 寫許可權
Apache、Php及MySql設置
httpd.conf配置:
Linux路徑:/usr/local/apache/conf/httpd.conf
#忽略大小寫
LoadMole speling_mole moles/mod_speling.so
CheckSpelling On
#設置默認首頁
DirectoryIndex index.htm index.html index.php
#設置php能解析的文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
#設置多域名綁定,請將192.168.11.11更改為真實伺服器IP
NameVirtualHost 192.168.11.11:80
#綁定主域名www.v-ec.com,請將192.168.11.11更改為真實伺服器IP
VirtualHost 192.168.11.11:80
DocumentRoot /www/docs/v-ec
ServerName www.v-ec.com
ServerAlias www.v-ec.com
# ErrorLog logs/www.v-ec.com-error_log
# CustomLog logs/www.v-ec.com-access_log common
/VirtualHost
#綁定博客域名www.w3cgroup.com,請將192.168.11.11更改為真實伺服器IP
VirtualHost 192.168.11.11:80
# ServerAdmin [email protected]
DocumentRoot /www/docs/w3cgroup
ServerName www.w3cgroup.com
ServerAlias www.w3cgroup.com
# ErrorLog logs/www.w3cgroup.com-error_log
# CustomLog logs/www.w3cgroup.com-access_log common
/VirtualHost
php.ini設置:
Linux路徑:/usr/local/Zend/etc/php.ini
;設置開始短標簽模式
short_open_tag = On
;開啟顯示錯誤,調試狀態設置為On,正式上線設置為Off
display_errors = Off
;設置錯誤報告方式
error_reporting = E_ALL ~E_NOTICE
;啟用gd庫
extension=php_gd2.dll
;啟用mysql
extension=php_mysql.dll
;設置時區
date.timezone = PRC
my.cnf(windows系統下名為my.ini)設置:
Linux路徑:/etc/my.cnf
;默認字元
default-character-set=utf8
;表名、欄位名的不區分大小寫
lower_case_table_names = 1
;允許同時連接的數量
max_connections = 1024
;關閉連接前的等待時間
wait_timeout = 7200