Added document fixes

devel
Alexey Berezhok 7 months ago
parent ef861e9c28
commit 9d93d56a05

@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
## [1.8.6] - Alpha release
- Added rpm systems support
- Added MSVSphere support
- Added php cli selector
## [1.8.2] - Service release
- Added more files to default proxy extensions (#3768)

@ -2,75 +2,4 @@
## Ways to contribute
- **Beta testing**:
- Download and install builds from the `beta` branch. If you encounter an issue with a beta build, file an issue report on [GitHub](https://www.github.com/hestiacp/hestiacp/issues).<br>
`v-update-sys-hestia-git hestiacp beta install` will install the latest beta build from our GitHub repository.
- **Code review and bug fixes**:
- Read over the code and if you notice errors (even spelling mistakes), submit a pull request with your changes.
- **New features**:
- Is there an awesome feature that you'd love to see included? Submit a pull request with your changes, and if approved your PR will be reviewed and merged for inclusion in an upcoming release. While our development team tries to accommodate all reasonable requests please remember that it does take time to develop, implement and test new features and as such we may not be able to fulfill all requests or may have to put a feature on backlog for a later date.
- **Translations**:
- If you are a non-English speaker and would like to improve the quality of the translations used in Hestia Control Panel's web interface, please go to [Hestia Translate](https://translate.hestiacp.com/projects/hestiacp/) to review the translations database. For more information please read [How to contribute with Translations](https://forum.hestiacp.com/t/how-to-contribute-with-translations/1664) on our forum. You can also open an issue report [GitHub](https://www.github.com/hestiacp/hestiacp/issues) highlighting the issue with the current translation so that it can be corrected.
- **Donations**:
- If you're not a developer but you still want to make a contribution to support Hestia Control Panel and our developers, you can make a donation to the Hestia Control Panel project to further its development (or if you'd just like to buy our developers a lunch, we'd appreciate that too). We currently accept donations through [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ST87LQH2CHGLA).
## Development Guidelines
Additional information on how to contribute to Hestia Control Panel can be found in the [Development](docs/docs/contributing/development.md) documentation.
### Code formatting and comments
We ask that you follow existing naming schemes and coding conventions where possible, and that you add comments in your source code where appropriate to aid other developers in debugging and understanding your code in the future.
To ensure your changes meet our formatting requirements, please run `npm install` from the root of the repository before committing your changes. This will set up pre-commit hooks for automatic formatting, which will help to get your changes merged as quickly as possible.
### Workflow and process
Development for this project takes place in branches to effectively develop, manage, and test new features and code changes. Our tiered approach allows us to closely control the quality of code as it is checked in for inclusion.
We have three primary or "evergreen" branches, which exist throughout our product's lifetime. Please refer to the following table for a description:
| Branch | Description |
| --------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| `main` | Contains a snapshot of the latest development code.<br>**Not intended for production use and contains code from a merge snapshot.** |
| `beta` | Contains a snapshot of the next version which is currently in testing.<br>**Not intended for production use, however code from this branch should be stable.** |
| `release` | Contains a snapshot of the latest stable release.<br>**Intended for production use. This repository contains the same code as our compiled packages.** |
### Creating a new branch and submitting pull requests
The first step is to create a fork of the `hestiacp/hestiacp` repository under your GitHub account so that you may submit pull requests and patches.
Once you've created your fork, clone the repository to your computer and make sure that you've checked out the `main` branch. **Always** create a new topic branch for your work.
### Branch naming convention
- **Prefix:** `topic/` (such as **fix**, **feature**, **refactor**, etc.)
- **ID**: `888` (GitHub Issue ID if an issue exists)
- **Title:** `my-awesome-patch`
Branch name examples:
- `feature/777-my-awesome-new-feature` or `feature/my-other-new-feature`
- `fix/000-some-bug-fix` or `fix/this-feature-is-broken`
- `refactor/v-change-domain-owner`
- `test/mail-domain-ssl`
### Squashing commits for smaller changes
To aid other developers and keep the project's commit history clean, please **squash your commits** when it's appropriate. For example with smaller commits related to the same piece of code, such as commits labelled "Fixed item 1", "Adjusted color of button XYZ", "Adjusted alignment of button XYZ" can be squashed into one commit with the title "Fixed button issues in item".
### What happens when I submit a pull request?
- Our internal development team will review your work and validate your request.
- Your changes will be tested to ensure that there are no issues.
- If changes need to be made, you will be notified via GitHub.
- Once approved, your code will be merged for inclusion in an upcoming release of Hestia Control Panel.
All pull requests must include a brief but descriptive title, and a detailed description of the changes that you've made. **Only include commits that are related to your feature, bug fix, or patch in your pull request!**
## Thank you
We appreciate **all** contributions no matter what size; your feedback and input directly shapes the future of Hestia Control Panel and we could not do it without your support.
Thank you for your time and we look forward to seeing your pull requests,<br>
The Hestia Control Panel development team
Contributing can be only with original version of [HestiaCP](https://github.com/hestiacp/hestiacp)

@ -1,36 +1,23 @@
<h1 align="center"><a href="https://www.hestiacp.com/">Hestia Control Panel</a></h1>
![HestiaCP Web Interface screenshot](https://storage.hestiacp.com/hestiascreen.png)
<h1 align="center">Hestia Control Panel</h1>
<h2 align="center">Lightweight and powerful control panel for the modern web</h2>
<p align="center"><strong>Latest stable release:</strong> Version 1.8.2 | <a href="https://github.com/hestiacp/hestiacp/blob/release/CHANGELOG.md">View Changelog</a></p>
<p align="center">
<a href="https://www.hestiacp.com/">HestiaCP.com</a> |
<p align="center"><strong>Original project:</strong> | <a href="https://github.com/hestiacp/hestiacp/blob/release/CHANGELOG.md">View Changelog</a> |
<a href="https://www.hestiacp.com/">HestiaCP.com</a> |
<a href="https://docs.hestiacp.com/">Documentation</a> |
<a href="https://forum.hestiacp.com/">Forum</a>
<br/><br/>
<a href="https://drone.hestiacp.com/hestiacp/hestiacp">
<img src="https://drone.hestiacp.com/api/badges/hestiacp/hestiacp/status.svg?ref=refs/heads/main" alt="Drone Status"/>
</a>
<a href="https://github.com/hestiacp/hestiacp/actions/workflows/lint.yml">
<img src="https://github.com/hestiacp/hestiacp/actions/workflows/lint.yml/badge.svg" alt="Lint Status"/>
</a>
<br/><br/></p>
<p align="center">
<strong>RPM support project:</strong> |
<a href="https://hestiadocs.brepo.ru/">Documentation for version with RPM support</a>
</p>
## **Welcome!**
Hestia Control Panel is designed to provide administrators an easy to use web and command line interface, enabling them to quickly deploy and manage web domains, mail accounts, DNS zones, and databases from one central dashboard without the hassle of manually deploying and configuring individual components or services.
## Donate
[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ST87LQH2CHGLA)<br /><br />
Bitcoin : bc1q48jt5wg5jaj8g9zy7c3j03cv57j2m2u5anlutu<br>
Ethereum : 0xfF3Dd2c889bd0Ff73d8085B84A314FC7c88e5D51<br>
Binance: bnb1l4ywvw5ejfmsgjdcx8jn5lxj7zsun8ktfu7rh8<br>
Smart Chain: 0xfF3Dd2c889bd0Ff73d8085B84A314FC7c88e5D51<br>
## Features and Services
- Apache2 and NGINX with PHP-FPM
@ -43,8 +30,11 @@ Smart Chain: 0xfF3Dd2c889bd0Ff73d8085B84A314FC7c88e5D51<br>
## Supported platforms and operating systems
- **Debian:** 12, 11, or 10
- **Ubuntu:** 22.04 LTS, 20.04 LTS
- **MSVSphere:** 9
- **AlmaLinux:** 9
- **RockyLinux:** 9
Currently stayed support of Debian and Ubuntu, but new functional will be available only for RPM based systems. For full supportin of Debian and Ubuntu use original [HestiaCP](https://github.com/hestiacp/hestiacp)
**NOTES:**
@ -76,7 +66,7 @@ wget https://dev.brepo.ru/bayrepo/hestiacp/raw/branch/master/install/hst-install
If the download fails due to an SSL validation error, please be sure you've installed the ca-certificate package on your system - you can do this with the following command:
```bash
apt-get update && apt-get install ca-certificates
yum update
```
### Step 3: Run
@ -97,41 +87,23 @@ You may specify a number of various flags during installation to only install th
bash hst-install.sh -h
```
Alternatively, You can use <https://hestiacp.com/install.html> which allows you to easily generate the installation command via GUI.
## How to upgrade an existing installation
Automatic Updates are enabled by default on new installations of Hestia Control Panel and can be managed from **Server Settings > Updates**. To manually check for and install available updates, use the apt package manager:
Automatic Updates are enabled by default on new installations of Hestia Control Panel and can be managed from **Server Settings > Updates**. To manually check for and install available updates, use the system package manager:
```bash
apt-get update
apt-get upgrade
dnf update
```
## Issues & Support Requests
- If you encounter a general problem while using Hestia Control Panel and need help, please [visit our forum](https://forum.hestiacp.com/) to search for potential solutions or post a new thread where community members can assist.
- Bugs and other reproducible issues should be filed via GitHub by [creating a new issue report](https://github.com/hestiacp/hestiacp/issues) so that our developers can investigate further. Please note that requests for support will be redirected to our forum.
**IMPORTANT: We _cannot_ provide support for requests that do not describe the troubleshooting steps that have already been performed, or for third-party applications not related to Hestia Control Panel (such as WordPress). Please make sure that you include as much information as possible in your forum posts or issue reports!**
## Contributions
- If you encounter a general problem while using Hestia Control Panel for RPM based system use [issue report](https://github.com/bayrepo/hestiacp/issues)
If you would like to contribute to the project, please [read our Contribution Guidelines](https://github.com/hestiacp/hestiacp/blob/release/CONTRIBUTING.md) for a brief overview of our development process and standards.
For original HestiaCP for Debian and Ubuntu use [original version](https://github.com/hestiacp/hestiacp):
## Copyright
"Hestia Control Panel", "HestiaCP", and the Hestia logo are original copyright of hestiacp.com and the following restrictions apply:
**You are allowed to:**
- use the names "Hestia Control Panel", "HestiaCP", or the Hestia logo in any context directly related to the application or the project. This includes the application itself, local communities and news or blog posts.
**You are not allowed to:**
- sell or redistribute the application under the name "Hestia Control Panel", "HestiaCP", or similar derivatives, including the use of the Hestia logo in any brand or marketing materials related to revenue generating activities,
- use the names "Hestia Control Panel", "HestiaCP", or the Hestia logo in any context that is not related to the project,
- alter the name "Hestia Control Panel", "HestiaCP", or the Hestia logo in any way.
See original copyright of [HestiaCP](https://github.com/hestiacp/hestiacp)
## License

@ -26,8 +26,6 @@ nodejs_ver="20"
# Perform verification if read-only mode is enabled
check_hestia_demo_mode
#TODO
#Temporary disable for RPM
if [ -f /etc/redhat-release ]; then
exit 0
fi

@ -23,30 +23,20 @@ export default defineConfig({
nav: nav(),
socialLinks: [
{ icon: 'github', link: 'https://dev.brepo.ru/bayrepo/hestiacp' },
{ icon: 'github', link: 'https://github.com/bayrepo/hestiacp' },
{ icon: 'github', link: 'https://github.com/hestiacp/hestiacp' },
{ icon: 'twitter', link: 'https://twitter.com/HestiaPanel' },
{ icon: 'facebook', link: 'https://www.facebook.com/hestiacp' },
],
sidebar: { '/docs/': sidebarDocs() },
outline: [2, 3],
editLink: {
pattern: 'https://github.com/hestiacp/hestiacp/edit/main/docs/:path',
text: 'Edit this page on GitHub',
},
footer: {
message: 'Released under the GPLv3 License.',
copyright: 'Copyright © 2019-present Hestia Control Panel',
copyright: 'Copyright © 2019-present Hestia Control Panel and some RPM based components belongs to bayrepo',
},
algolia: {
appId: 'V04P0P5D2R',
apiKey: '7a90a3ac7f9313f174c50b0f301f7ec6',
indexName: 'hestia_cp',
},
},
});
@ -56,24 +46,20 @@ function nav() {
{ text: 'Features', link: '/features.md' },
{ text: 'Install', link: '/install.md' },
{ text: 'Documentation', link: '/docs/introduction/getting-started.md', activeMatch: '/docs/' },
{ text: 'Team', link: '/team.md' },
{ text: 'Demo', link: 'https://demo.hestiacp.com:8083/' },
{ text: 'Forum', link: 'https://forum.hestiacp.com/' },
{ text: 'Donate', link: '/donate.md' },
{
text: `v${version}`,
items: [
{
text: 'Changelog',
link: 'https://github.com/hestiacp/hestiacp/blob/main/CHANGELOG.md',
link: 'https://dev.brepo.ru/bayrepo/hestiacp/src/branch/master/CHANGELOG.md',
},
{
text: 'Contributing',
link: 'https://github.com/hestiacp/hestiacp/blob/main/CONTRIBUTING.md',
link: 'https://dev.brepo.ru/bayrepo/hestiacp/src/branch/master/CONTRIBUTING.md',
},
{
text: 'Security policy',
link: 'https://github.com/hestiacp/hestiacp/blob/main/SECURITY.md',
link: 'https://dev.brepo.ru/bayrepo/hestiacp/src/branch/master/SECURITY.md',
},
],
},
@ -159,5 +145,12 @@ function sidebarDocs() {
{ text: 'CLI', link: '/docs/reference/cli.md' },
],
},
{
text: 'Extensions',
collapsed: false,
items: [
{ text: 'PHP cli selector', link: '/docs/extensions/php-cli-selector.md' },
],
},
];
}

@ -16,30 +16,12 @@ export const webDomains = [
{
text: 'MultiPHP support for',
items: [
{ text: "PHP 5.6 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.0 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.1 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.2 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.3 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.4 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: 'PHP 8.0' },
{ text: 'PHP 8.1' },
{ text: 'PHP 8.2' },
],
},
{
text: 'One-Click Install Apps',
items: [
{ text: 'WordPress' },
{ text: 'Dokuwiki' },
{ text: 'Drupal' },
{ text: 'Grav' },
{ text: 'Laravel' },
{ text: 'MediaWiki' },
{ text: 'NextCloud' },
{ text: 'OpenCart' },
{ text: 'Prestashop' },
{ text: 'Symphony' },
{ text: 'PHP 8.3' },
{ text: 'PHP 8.4' },
],
},
];

@ -0,0 +1,16 @@
# PHP cli selector
PHP cli selector replace system php - `/usr/bin/php` with link to the tool, which analyze HestiaCP config for user and exec needed for user php.
Example:
```
# readlink -f /usr/bin/php
/usr/bin/hestiacp-php-selector
```
By default php cli selector disbaled and system php points to default php binary.
For enabling PHP cli selector got ot "Server Options"->"Options"->"Web-server".
Find selector "System PHP" and under the selector set checkbox "Use PHP cli selector".
![php_cli_selector](/images/php_cli_selector.png)

@ -27,12 +27,9 @@ We currently do not support i386 or ARM7-based processors.
### Supported operating systems
- Debian 10, 11 or 12
- Ubuntu 20.04 or 22.04
::: warning
Hestia does not support non-LTS Operating systems. If you install it on, for example, Ubuntu 21.10, you will not receive support from us.
:::
- MSVSphere 9
- AlmaLinux 9
- Rocky Linux 9
## Regular installation
@ -49,7 +46,7 @@ wget https://dev.brepo.ru/bayrepo/hestiacp/raw/branch/master/install/hst-install
If the download fails due to an SSL validation error, please be sure you've installed the ca-certificate package on your system - you can do this with the following command:
```bash
apt-get update && apt-get install ca-certificates
yum install ca-certificates
```
### Step 2: Run
@ -81,33 +78,35 @@ An easier way to choose your installation options is by using the [Install strin
To choose what software gets installed, you can provide flags to the installation script. You can view the full list of options below.
```bash
-a, --apache Install Apache [yes | no] default: yes
-w, --phpfpm Install PHP-FPM [yes | no] default: yes
-o, --multiphp Install Multi-PHP [yes | no] default: no
-v, --vsftpd Install Vsftpd [yes | no] default: yes
-j, --proftpd Install ProFTPD [yes | no] default: no
-k, --named Install Bind [yes | no] default: yes
-m, --mysql Install MariaDB [yes | no] default: yes
-M, --mysql-classic Install Mysql8 [yes | no] default: no
-g, --postgresql Install PostgreSQL [yes | no] default: no
-x, --exim Install Exim [yes | no] default: yes
-z, --dovecot Install Dovecot [yes | no] default: yes
-Z, --sieve Install Sieve [yes | no] default: no
-c, --clamav Install ClamAV [yes | no] default: yes
-t, --spamassassin Install SpamAssassin [yes | no] default: yes
-i, --iptables Install Iptables [yes | no] default: yes
-b, --fail2ban Install Fail2ban [yes | no] default: yes
-q, --quota Filesystem Quota [yes | no] default: no
-d, --api Activate API [yes | no] default: yes
-r, --port Change Backend Port default: 8083
-l, --lang Default language default: en
-y, --interactive Interactive install [yes | no] default: yes
-s, --hostname Set hostname
-e, --email Set admin email
-p, --password Set admin password
-D, --with-debs Path to Hestia debs
-f, --force Force installation
-h, --help Print this help
-a, --apache Install Apache [yes|no] default: yes
-w, --phpfpm Install PHP-FPM [yes|no] default: yes
-o, --multiphp Install Multi-PHP [yes|no] default: no
-v, --vsftpd Install Vsftpd [yes|no] default: yes
-j, --proftpd Install ProFTPD [yes|no] default: no
-k, --named Install Bind [yes|no] default: yes
-m, --mysql Install MariaDB [yes|no] default: yes
-M, --mysql-classic Install MySQL 8 [yes|no] default: no
-g, --postgresql Install PostgreSQL [yes|no] default: no
-x, --exim Install Exim [yes|no] default: yes
-z, --dovecot Install Dovecot [yes|no] default: yes
-Z, --sieve Install Sieve [yes|no] default: no
-c, --clamav Install ClamAV [yes|no] default: no
-t, --spamassassin Install SpamAssassin [yes|no] default: yes
-i, --iptables Install Iptables [yes|no] default: yes
-b, --fail2ban Install Fail2ban [yes|no] default: yes
-q, --quota Filesystem Quota [yes|no] default: no
-d, --api Activate API [yes|no] default: yes
-r, --port Change Backend Port default: 8083
-l, --lang Default language default: en
-y, --interactive Interactive install [yes|no] default: yes
-I, --nopublicip Use local ip [yes|no] default: yes
-s, --hostname Set hostname
-e, --email Set admin email
-p, --password Set admin password
-R, --with-rpms Path to Hestia rpms
-f, --force Force installation
-h, --help Print this help
```
#### Example

@ -15,8 +15,6 @@ A good starting point for every software is to check the official docs:
- For Apache2: [Apache Docs](http://httpd.apache.org/docs/2.4/)
- For PHP-FPM: [PHP Docs](https://www.php.net/manual/en/install.fpm.configuration.php)
You could also try [our Forum](https://forum.hestiacp.com)
## Can I use HestiaCP behind Cloudflare CDN?
By default the [Cloudflare Proxy](https://developers.cloudflare.com/fundamentals/get-started/reference/network-ports/) supports only a limited number of ports. This means that Cloudflare will not forward port 8083, which is the default port for Hestia. To change the Hestia port to one that Cloudflare will forward, run this command:

@ -13,12 +13,12 @@ Make sure to verify that MariaDB is running on a supported version for the new o
Once a backup has been made, update Hestia to the last supported version:
```bash
apt update && apt upgrade
yum update
```
Follow system instructions to upgrade your OS. When done, make sure to check that the files in `/etc/apt/sources.list.d` are not hashed out. If they are, remove the hash and run `apt update && apt upgrade` again.
## Debian 10 Buster to Debian 11 Bullseye
## MSVSphere, AlmaLinux, RockyLinux 9
### SHA512 password encryption
@ -37,37 +37,4 @@ cp -f /usr/local/hestia/install/deb/exim/exim4.conf.4.94.template /etc/exim4/exi
Comment out [line 29](https://github.com/hestiacp/hestiacp/blob/1ff8a4e5207aae1e241954a83b7e8070bcdca788/install/deb/proftpd/proftpd.conf#L29) in `/etc/profpd/prodtpd.conf`.
## Debian 9 Stretch to Debian 10 Buster
No issues have been found in the past.
## Ubuntu 20.04 Focal to Ubuntu 22.04 Jammy
::: tip
Verify that MariaDB is running at least version 10.6. If not, first upgrade to this version in your current operating system! After that, comment out the line in `/etc/apt/sources.list.d/mariadb.list` and then upgrade your OS.
:::
### SHA512 password encryption
```bash
sed -i "s/obscure yescrypt/obscure sha512/g" /etc/pam.d/common-password
```
### Exim4 config
```bash
rm -f /etc/exim4/exim4.conf.template
cp -f /usr/local/hestia/install/deb/exim/exim4.conf.4.94.template /etc/exim4/exim4.conf.template
```
### ProFTPD
Comment out [line 29](https://github.com/hestiacp/hestiacp/blob/1ff8a4e5207aae1e241954a83b7e8070bcdca788/install/deb/proftpd/proftpd.conf#L29) in `/etc/profpd/prodtpd.conf`.
## Ubuntu 18.04 Bionic to Ubuntu 20.04 Focal
No issues have been found in the past.
## Older versions
We havent tested the upgrade paths from Ubuntu 16.04 to Ubuntu 20.04 or Debian 8 Jessy to Debian 10

@ -6,7 +6,7 @@ titleTemplate: Open-source web server control panel.
hero:
name: Hestia Control Panel
text: Open-source web server control panel
text: Open-source web server control panel (RPM based build)
tagline: Fast, reliable, open-source. The control panel youve always wanted is just a command away.
image:
src: /logo.svg
@ -16,10 +16,10 @@ hero:
text: Get started
link: /docs/introduction/getting-started
- theme: alt
text: Try the demo
link: https://demo.hestiacp.com:8083/
text: RPM version
link: https://dev.brepo.ru/bayrepo/hestiacp
- theme: alt
text: View on GitHub
text: Original version
link: https://github.com/hestiacp/hestiacp
features:
@ -28,11 +28,6 @@ features:
details: Hestia is made with ease of use in mind. Creating a user or a website is as easy as clicking a button and filling out a couple of fields, while advanced features are easily accessible.
link: /docs/introduction/getting-started
linkText: Documentation
- icon: ❤️
title: Made with love & pride
details: Hestia is open-source software that is built by passionate people from around the world. This means that the code is reviewed by multiple people and that anybody can contribute to it!
link: /team
linkText: See the team
- icon: 🛠️
title: Extendable & powerful
details: Hestia is extendable while being easy to learn. You can build your own themes, web templates, quick install applications and can interact with it using third party software via its API.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

@ -1,13 +1,13 @@
{
"name": "hestia",
"private": true,
"version": "1.9.0~alpha",
"version": "1.8.6",
"description": "An open-source Linux web server control panel.",
"repository": "https://github.com/hestiacp/hestiacp",
"license": "GPL-3.0-or-later",
"type": "module",
"scripts": {
"docs:dev": "vitepress dev docs",
"docs:dev": "vitepress dev docs --host=0.0.0.0",
"docs:build": "vitepress build docs",
"docs:serve": "vitepress serve docs",
"docs:preview": "vitepress preview docs --port=5173 --host=127.0.0.1",

@ -47,15 +47,12 @@ $v_php_versions = [
if ($is_rhel){
$v_php_versions = [
"php-56",
"php-70",
"php-71",
"php-72",
"php-73",
"php-74",
"php-80",
"php-81",
"php-82",
"php-83",
"php-84",
];
}

Loading…
Cancel
Save