存档

文章标签 ‘php5’

ubuntu服务器安装php geoip拓展教程

2020年11月13日 评论已被关闭

我们可以安装php的geoip拓展来实现获取国家等ip地理信息,简单的说就是实现这个链接的函数功能:https://www.php.net/manual/en/book.geoip.php,如果没有安装拓展,这个链接上面函数的功能是不能使用的。

参考链接:
https://www.maxmind.com/en/home
https://www.miyuru.lk/geoiplegacy(这里可以下载到geoip的dat文件)
https://pecl.php.net/package/geoip
https://www.php.net/manual/en/geoip.setup.php
https://www.php.net/manual/en/book.geoip.php
https://db-ip.com/
https://db-ip.com/db/download/ip-to-city-lite
https://members.ip-api.com/#pricing
https://serverpilot.io/docs/how-to-install-the-php-geoip-extension/
https://blog.csdn.net/xpy870663266/article/details/94742491
https://valynkin.ru/maxmind-geoip2-na-ubuntu-1604-php56.html
https://blog.csdn.net/weixin_34245082/article/details/92028414

简单总结下ubuntu服务器安装php geoip拓展的过程吧
一开始我是在一台vps下操作,源是阿里云的源,装了php5.6,按照网上的搜索依次执行命令,发现遇到各种问题,上方的链接有的也是其中的解决办法,但是就是不行。后来换了一台服务器是官方源,sudo apt-get update之后,可以看到有php5.6-geoip拓展,输入sudo apt-get install php5.6-(按tab键可提示),这样的话就简单了(我怀疑是源的问题,没调试了)
可以看到apt-get里面的拓展,这样就方便了,不用自己编译安装,执行:
sudo apt-get install php5.6-geoip
执行完毕在/usr/share/GeoIP可以看到.dat文件和ipv6的dat文件
是执行完毕后,重启php5.6-fpm,发现问题了,discuz论坛无法回帖了,不过还好,我的需求是php7.4支持就可以了(我的服务器上是php5.6和php7.4共存的),所以我只需要执行:
sudo apt-get install php7.4-geoip
执行完毕后,重启php7.4-fpm,搞定

ubuntu服务器安装php geoip拓展教程就写到这里,只适合本人自己阅读,网友仅供参考(服务器环境有很大区别)

下面备注自动更新数据库的操作方法:
打开maxmind.com:登录后,个人中心:Services->My License Key
创建key之后,点击Download Config下载GeoIP.conf到/etc/GeoIP.conf
sudo apt-get install geoipupdate
安装好之后,需要更新的时候执行:geoipupdate -v
这样就可以自动更新了(可以定时任务执行)
参考:https://www.awaimai.com/2117.html

可以先执行php:var_dump(geoip_database_info());打印当前版本的信息,然后更新之后,再运行一次php,对比2次版本不同。

可是我们发现,/usr/share/GeoIp下面的.dat文件并没有更新,经过测试,从https://www.miyuru.lk/geoiplegacy下载最新的,然后执行:
sduo cd /usr/share/GeoIp/
sudo mkdir test
cd test
sudo wget https://dl.miyuru.lk/geoip/maxmind/city/maxmind4.dat.gz
sudo gunzip maxmind4.dat.gz
sudo wget https://dl.miyuru.lk/geoip/maxmind/city/maxmind6.dat.gz
sudo gunzip maxmind6.dat.gz
cd ../
sudo mv GeoIP.dat GeoIP.dat.bk
sudo mv GeoIPv6.dat GeoIPv6.dat.bk
sudo mv test/maxmind4.dat GeoIP.dat
sudo mv test/maxmind6.dat GeoIPv6.dat
sudo service php7.4-fpm restart
最后php执行:var_dump(geoip_database_info());似乎报错,所以就不折腾了,可能拓展安装的只有等拓展更新了才能更新数据库?有待验证

特别备注:获取ipv6的信息,要使用:
var_dump(geoip_country_code_by_name_v6(‘2601:8:be00:cf20:ca60:ff:fe09:35b5’));


分类: php学习, ubuntu高手 标签: , , , ,

ubuntu20.04安装mysql8之后,php5程序和phpmyadmin出现#2054 无法登录MySQL服务器的解决方案

2020年5月19日 没有评论

最近新装了ubuntu20.04版本,如果安装了php5,在安装mysql之后,使用phpmyadmin登陆,会出现2054 无法登录MySQL服务器

这个问题经过一晚上的折腾,终于找到了解决方案:

一步:

在mysql安装之后,执行:sudo mysql_secure_installation(按照提示操作即可)(这里会让输入root的密码)
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address,注释掉
sudo /etc/init.d/mysql restart
mysql -uroot -p
输入root密码(sudo mysql_secure_installation的时候会让输入)
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
UPDATE mysql.user SET host = ‘%’ WHERE user = ‘root’;#允许远程访问,如果不需要,可以不操作
FLUSH PRIVILEGES;

当然,我们也可以新建用户:(127.0.0.1也可以再增加一个内网ip)
CREATE USER ‘root’@’127.0.0.1’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’127.0.0.1’ WITH GRANT OPTION;
FLUSH PRIVILEGES;

第二步:

虽然执行了上方调整,但是还是无法连接,是由于Mysql8.0将默认的字符集改为了utfmb4,因此和客户端(不仅仅是PHP)的通信无法识别

所以,我们需要进行:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在mysqld的选项中增加:

collation-server = utf8_unicode_ci
character-set-server = utf8

重启mysql,完美解决问题(网上搜了很多方法,大部分都进行了第一步,但是没有进行第二步,无法解决问题)

参考网址:https://blog.csdn.net/king921004/article/details/106184909/
参考网址:https://segmentfault.com/a/1190000017370224?utm_source=tag-newest

ubuntu16.04安装php5

2016年10月10日 没有评论
sudo apt-get install -y language-pack-en-base
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

如果提示:add-apt-repository不存在,执行:
sudo apt-get install python-software-properties
sudo apt-get install software-properties-common
安装:
sudo apt-get install libapache2-mod-php5.6 php5.6 php5.6-gd php5.6-mysql php5.6-curl
分类: ubuntu高手 标签: , ,

php5升级到php7的一些记录

2016年10月9日 没有评论

<?php
//$mysqli=mysqli_connect($db_host,$db_user,$db_pwd,$db_name);
$mysqli=mysqli_connect($db_host,$db_user,$db_pwd);
mysqli_select_db($mysqli,$db_name);

if(!$mysqli){echo mysqli_connect_error();}

die(version_compare( mysqli_get_client_info($mysqli), “8.1.0”, “lt” ));

echo mysqli_escape_string(“select * from user where name=’gwegew'”);
die(‘xx’);

$res=mysqli_query($mysqli,’select * from xueli limit 1′);
echo “<pre>”;

/*
$array = mysqli_fetch_array($res);

var_dump($array);
foreach ($array as $val) {
echo current($val).'<br>’;
}

$finfo = mysqli_fetch_field_direct($res,1);

printf(“Name:     %s\n”, $finfo->name);
printf(“Table:    %s\n”, $finfo->table);
printf(“max. Len: %d\n”, $finfo->max_length);
printf(“Flags:    %d\n”, $finfo->flags);
printf(“Type:     %d\n”, $finfo->type);

*/
/*
$res=$mysqli->query(“INSERT INTO `xueli`
VALUES (
’24’, ‘xueli/201609/Cjaic91eUSR5zhl1308.jpg’, ‘ceshi’, ‘2’, ‘1139414400’, ‘1473091200’, ‘1475164800’, ‘网络教育’, ‘专科’, ‘兰州大学’, ‘甘肃省’, ‘建筑工程技术’, ‘网络教育’, ‘1073 0720 1606 0026 26’, ‘毕业’, ‘0408 7826 1126’, ‘1474128000’, ‘1538236800’, ‘1’
)”);
var_dump(mysqli_insert_id($mysqli));
*/

//var_dump(mysql_fetch_array($res));
//var_dump(mysqli_num_rows($res));

//关闭连接
//mysqli_close($mysqli);
//echo ‘hello’;
?>

 
int mysql_errno ([ resource $link_identifier ] )                                  int mysqli_connect_errno ( void )
int mysql_error ([ resource $link_identifier ] )                                  int mysqli_connect_error ( void )
bool mysql_close ([ resource $link_identifier = NULL ] )                          bool mysqli_close ( mysqli $link )
bool mysql_ping ([ resource $link_identifier = NULL ] )                           bool mysqli_ping ( mysqli $link )
int mysql_num_rows ( resource $result )                                           int mysqli_num_rows ( mysqli_result $result )
array mysql_fetch_array ( resource $result [, int $ result_type ] )               mixed mysqli_fetch_array ( mysqli_result $result [, int $resulttype = MYSQLI_BOTH ] )
array mysql_fetch_assoc ( resource $result )                                      array mysqli_fetch_assoc ( mysqli_result $result )
bool mysql_data_seek ( resource $result , int $row_number )                       bool mysqli_data_seek ( mysqli_result $result , int $offset )
object mysql_fetch_object ( resource $result )                                    object mysqli_fetch_object ( mysqli_result $result [, string $class_name = “stdClass” [, array $params ]] )
array mysql_fetch_row ( resource $result )                                        mixed mysqli_fetch_row ( mysqli_result $result )
int mysql_num_fields ( resource $result )                                         int mysqli_num_fields ( mysqli_result $result )
array mysql_fetch_lengths ( resource $result )                                    array mysqli_fetch_lengths ( mysqli_result $result )
int mysql_get_proto_info ([ resource $link_identifier ] )                         int mysqli_get_proto_info ( mysqli $link )
bool mysql_field_seek ( resource $result , int $field_offset )                    bool mysqli_field_seek ( mysqli_result $result , int $fieldnr )
string mysql_get_client_info ( void )                                             string mysqli_get_client_info ( mysqli $link )
string mysql_get_host_info ([ resource $link_identifier ] )                       string mysqli_get_host_info ( mysqli $link )
string mysql_info ([ resource $link_identifier ] )                                string mysqli_info ( mysqli $link )
bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )  bool mysqli_set_charset ( mysqli $link , string $charset )
bool mysql_free_result ( resource $result )                                       void mysqli_free_result ( mysqli_result $result )
mysql_db_name           SELECT DATABASE()
mysql_list_tables       SHOW TABLES FROM dbname
mysql_unbuffered_query
mysql_pconnect               mysqli_connect
mysql_connect                mysqli_connect

string mysql_escape_string ( string $unescaped_string )                           string mysqli_escape_string ( mysqli $link , string $escapestr )
string mysql_real_escape_string ( string $unescaped_string )                      string mysqli_real_escape_string ( mysqli $link , string $escapestr )
string mysql_get_server_info ([ resource $link_identifier ] )                     string mysqli_get_server_info ( mysqli $link )

int mysql_affected_rows ([ resource $link_identifier = NULL ] )                   int mysqli_affected_rows ( mysqli $link )
bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )    bool mysqli_select_db ( mysqli $link , string $dbname )
int mysql_insert_id ([ resource $link_identifier = NULL ] )                       mixed mysqli_insert_id ( mysqli $link )
mixed mysql_query ( string $query [, resource $link_identifier = NULL ] )         mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

mysql_result

object mysql_fetch_field ( resource $result [, int $field_offset = 0 ] )          mixed mysqli_fetch_field_direct ( object $result , int $fieldnr )
mysql_field_flags
mysql_field_len
mysql_field_name
mysql_field_table
mysql_field_type

css.php