WordPress Advanced Administration Handbook

In early August 2022, the #Docs team reached out to the #Hosting team to collaborate on a new documentation section within WordPress.

This new documentation is proposed as advanced regarding what currently exists for end users (UserHub / Support), with the goal that the documentation for users is free of advanced technical material, and that the documentation for developers (DevHub) is very differentiated between what is development, and what are advanced development or system configurations.

This project is led by @JavierCasares, @lucp and @milana_cap. If you have any questions or concerns, please contact any of them.

Some information and links

Starting the Handbook

After several meetings in the Documentation team and the HostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web. team, the Handbook has been created in a GitHub repository and the first steps have been requested to the Meta team.

A first step has been the creation of an organizational structure of categories. It is a first version that can evolve. The idea is that the contents are only at two levels. In this way we will enter, for example, in the ServerServer A server is a piece of computer hardware or software that provides functionality for other programs or devices. Typical servers are database servers, file servers, mail servers, print servers, web servers, game servers, and application servers. categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. and there we will find the different pages (like nginxNGINX nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. Nginx is free and open-source software, released under the terms of the 2-clause BSD license.), but without subpages.

Subsequently, a page has been created for each of the documents to be copied from their origin. These pages have their respective Issues in the repository. This way, anyone who wants to work on the project can choose an issue and work on it.

Want to contribute?

Although we are still in a first step, if you know of other WordPress content that could be in this Handbook, please open an issue and discuss it with the Documentation team. Please use the label “advanced administration”.

If you want to help launch the Handbook as soon as possible, please take an issue and work on it. You can comment on the site itself if you have any questions, suggestions or improvements.

Where and when can you find us?

Currently, you can find us on Tuesdays at 14:00 UTC in the #docs SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel, or Wednesdays at 09:00 UTC and 18:00 UTC in the #hosting-community Slack channel.

You can also find us at the Contributor Day of WordCamp US (US), at the Contributor Day of WordCamp Netherlands (NL), or at the Contributor Day of WordCamp Valencia (ES).

+make.wordpress.org/docs/

#documentation

Proposal: Updating WP_MEMORY_LIMIT

During the Contributor Day at the WordCamp Europe 2022, the HostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web. Team found that WP_MEMORY_LIMIT is set as 40 MB (single site) and 64 MB (multisiteMultisite Multisite is a WordPress feature which allows users to create a network of sites on a single WordPress installation. Available since WordPress version 3.0, Multisite is a continuation of WPMU or WordPress Multiuser project. WordPress MultiUser project was discontinued and its features were included into WordPress core.https://codex.wordpress.org/Create_A_Network.). Furthermore, the WP_MAX_MEMORY_LIMIT is set as 256 MB.

WP_MEMORY_LIMIT is the value for the WordPress Memory Limit, usually referred to the frontend memory, and WP_MAX_MEMORY_LIMIT is the value for the PHPPHP PHP (PHP: Hypertext Preprocessor) is a general-purpose scripting language especially suited to web development. PHP code is usually processed on a web server by a PHP interpreter. On a web server, the result of the interpreted and executed PHP code would form the whole or part of an HTTP response. Memory Limit, usually referred to the backend memory.

History

Around September 2013, the WP_MEMORY_LIMIT value changed from 32 MB to 40 MB (32+8). Some tests done by the Hosting Team suggest that the memory used on WordPress is around 16 MB.

The PHP memory_limit sets the maximum amount of memory in bytes that a script is allowed to allocate. This helps prevent poorly written scripts for eating up all available memory on a serverServer A server is a piece of computer hardware or software that provides functionality for other programs or devices. Typical servers are database servers, file servers, mail servers, print servers, web servers, game servers, and application servers.. Note that to have no memory limit, set this directive to -1. Check the PHP page for more information.

PHP values

The first part gets the value from PHP, and if not exists, sets a default value. Thereafter, if the value is incorrect (in bytes) sets the memory limit from the constant.

This PHP value has evolved:

Some questions

Why change the WP_MEMORY_LIMIT value?

To level it to the PHP standard.

If the hoster has some kind of limitation, misconfiguration, an incorrect value or does not allow changing it, the value used is the lesser, of 40 MB, which usually produces memory errors, when it should use the PHP default value, which is generally acceptable in new installations. At this time, 20 latest versions of WordPress (since WordPress 4.1 / 2014-12-17) can use PHP 5.6.40+ so it would meet the minimums set by PHP.

Can, actually, the value be greater than the PHP value?

Yes. That’s why there is an intent to include something like:

WP_MEMORY_LIMIT <= WP_MAX_MEMORY_LIMIT <= memory_limit

Premises

We should keep in mind some basic assumptions when incorporating PHP memory limits based on what users can do.

The memory limit set by computer systems are set for a reason. And that reason should be enforced; therefore, PHP’s memory limit should not be exceeded, and in case it needs to be exceeded, it should be changed by the system administration.

Users can set the values they want from the wp-config.phpwp-config.php One of the most important files in a WordPress installation is the wp-config.php file. This file is located in the root of your WordPress file directory and contains your website’s base configuration details, such as database connection information. configuration file. Often, extremely high values are set to hide a memory consumption problem due to bad programming. With a few visits it usually works, but it is a short-term fix.

We must be realistic about the memory limits of the WordPress CoreCore Core is the set of software required to run WordPress. The Core Team builds WordPress. and the normal use of a WordPress, whether it is a simple WordPress or a WordPress Multisite. Most WordPress sites install plugins and themes that make memory spikes higher.

PHP has its baseline memory limits that should serve as a reference for its use and application.

Proposal

Considering that since 2008, and PHP >5.2.0 the memory_limit value is equal to 128 MB, should we consider an update of this value in the WordPress base configuration, or at least an update of the values?

The proposal from the WordPress Hosting team is for WP_MEMORY_LIMIT:

  • WordPress Single: define('WP_MEMORY_LIMIT', '128M');
  • WordPress Multisite: define('WP_MEMORY_LIMIT', '192M');

Another patch should be:

WP_MEMORY_LIMIT <= WP_MAX_MEMORY_LIMIT <= memory_limit

Users can modify the WP_MEMORY_LIMIT and WP_MAX_MEMORY_LIMIT at wp-config.php and should have some limitations in values, as far as WordPress cannot overflow PHP.

Getting the values

When doing some calls to PHP functions and values, got this:

  • php.iniphp.ini The main configuration file of PHP.: memory_limit -> value: 256M
  • function: memory_get_usage -> value: 2097152
  • updating the ini_set memory_limit to 512M -> value: memory_limit = 256M
  • function: ini_get_all[memory_limit]
Array (
  [global_value] => 256M
  [local_value] => 512M
  [access] => 7
)

So, the real values are, always, in the ini_get_all[memory_limit].

After doing some tests, maybe hard-coding the values is a bad idea, but having some “limits” is cool (like now) but reading the real values.

Ticket: 56390 Updating WP_MEMORY_LIMIT

Props: @javiercasares, @crixu, @bernardzijlstra, @mikeschroder.

#core, #performance, #php

WordPress Hosting Team 2022 recap

Here we are! It’s almost the end of 2022, and before starting 2023, maybe we should check what happened in the WordPress HostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web. Team this year.

Firstly, some relevant posts:

And the new pages in the Handbook:

More things 🙂:

Some props to people contributing in the Team

In the following days will be the presentation of the new Team Reps, and new goals for 2023.

Thank you all for this 2022 and looking forward to this 2023 with you, and more to come.

+make.wordpress.org/updates/

#hosting-community, #summary

Nominations for Hosting Team Reps 2023

This post kicks off the election process with nominations to replace the current HostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web. Team Reps. Current Team Reps are @amykamala, @Crixu, @jadonn, and @javiercasares.

The Role

In the WordPress open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. project, each team has on average one or two representatives, abbreviated as reps. In the Hosting Team we usually have 2 reps for APAC-EMEA and 2 reps for EMEA-AMER.

It’s not called “team lead” for a reason. It’s an administrative role. While people elected as team reps will generally come from the pool of folks that people think of as experienced leaders, the team repTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts. role is designed to change hands regularly.

This role has a time commitment attached to it. Not a huge amount, it’s at least three hours a week. Here are the main tasks:

– Post the agenda, host the chats, and summarize them.
– Keeping an eye on the moving parts of the team to be able to report for quarterly updates.

Full details on the Team Rep role is on the Team Update site.

How the election works

Please nominate people in the comments of this post. Self-nominations are welcome. The deadline is December 7th, 2022.

Once the nomination window is closed, we will open a poll for voting. It will stay open for about two weeks. The new reps will start their role on January 4th, 2023.

If you want to nominate someone in private, please reach out to one of the team reps. Current Team reps are @amykamala, @Crixu, @jadonn, and @javiercasares on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

Disclaimer: if you get nominated, please don’t feel like you have to say yes. The polls will only include the names of the people that are responding positively to a nomination. So feel free to reply with a “Thank you, but no thank you”.

If you have any questions, please feel free to ask in the comments, we will be happy to reply.

#team-reps

#hosting-community

Call For Action – Testing Rollback Feature

Hello WordPress Hosts!

The CoreCore Core is the set of software required to run WordPress. The Core Team builds WordPress. Development Team is requesting assistance with testing a new Rollback Feature in WordPress Core. As always, your testing contributions help keep the development process informed and are valuable to the WordPress Open SourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. Project! Thank you all in advance for participating in testing this feature!

This new feature offers the option to “rollback” to a previously installed version of plugins or themes that have thrown an error during a version update. Users may experience such an error as a WSOD (“white screen of death”), a visible PHPPHP PHP (PHP: Hypertext Preprocessor) is a general-purpose scripting language especially suited to web development. PHP code is usually processed on a web server by a PHP interpreter. On a web server, the result of the interpreted and executed PHP code would form the whole or part of an HTTP response. Error on the front-end or in another form during updates that can prevent a site from continuing to function without assistance from a Developer or Technical Support. This rollback feature will provide an option within WordPress Core itself for the user to set pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory or can be cost-based plugin from a third-party. and themeTheme A theme dictates the style and function of your WordPress website. Child Themes derive from the main parent theme. files back to the previously working version.

The feature uses a rename() function to copy plugin/theme files into another directory and then copy previously working files back into core directories, rather than using the less performant copy_dir() function which recursively copies files but is believed to result in timeouts on some systems.

How do I test Rollback?

Do not test on a production siteProduction Site A production site is a live site online meant to be viewed by your visitors, as opposed to a site that is staged for development or testing..

But do test on a local, staging or test environment, or spin up a cloud staging or test environment.

  1. Here are some large plugins used for testing: akismet, jetpack, mailpoet, woocommerce, wpforms-lite, wordpress-seo
    • WP-CLIWP-CLI WP CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way.wp plugin install akismet jetpack mailpoet woocommerce wpforms-lite wordpress-seo
  2. Do this from the plugin’s page on https://wordpress.org/plugins by navigating to the “Development” tab, clicking “Advanced” to the right, and downloading an older version from the dropdown at the bottom of the page. You can also install the current version then modify the version in the plugin’s main file to decrement the version number.
  3. Install the WordPress Beta Tester plugin, set to Bleeding edge and Nightlies. Go to Dashboard > Updates and click the Update to latest 6.1 nightly button.
  4. Install the Rollback feature plugin or test using the PR2225 in WordPress/wordpress-develop.
  5. Please make a note of the time required to perform plugin updates. Your phone’s stopwatch function may be the easiest method to do this.

Testing a single plugin update:

  1. Navigate to Plugins > Installed Plugins.
  2. Click “Update Now” located within the plugin row.

Testing bulk plugin updates via “Plugins”:

  1. Navigate to Plugins > Installed Plugins.
  2. Select another two plugins, select “Update” from the Bulk Actions dropdown, and click “Apply”.

Testing bulk plugin updates via “Dashboard”:

  1. Navigate to Dashboard > Updates
  2. Tick all plugins with an available update.
  3. Select “Update” from the Bulk Actions dropdown, and click “Apply”.

Testing updates via WP-CLI (if already familiar).

Validation of successful updates

This requires activating all the testing plugins on your testing site. Unsuccessful updates should show PHP Errors or PHP Fatal Errors.

  1. Activate each of the plugins that were updated.
  2. In WP Admin, navigate to each plugin’s menu pages.
  3. Navigate the frontend of your test site.
  4. Navigate to your wp-content/temp-backup/plugins folder. It should be empty.

Forcing an update failure

Use the following filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. to force an update failure. This will reinstall the previously active plugin/theme.

add_filter( 'upgrader_install_package_result', function() {
  return new WP_Error( 'simulated_error', 'Simulated Error' );
});

Testing update failures

When testing for failures on the bulk update in update-core.php you must use the PR. There is a modification in the PR that stops WP_Upgrader::unpack_package() from deleting the items in the temp-backup directory.

For More Information please see this original Call to Action from the Core Team.

The more testing that is done on a wider variety of hostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web. environments, the more likely WordPress and its new features are to perform on the wide range of hosting platforms available to users. As such, testing provides value to the software, users and hosts alike. Thank you again for your testing contributions!

#testing

Why hosters should install the PHP-intl extension

Although there are many types of hostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web., most WordPress users use shared hosting, and some use VPSVPS A virtual private server (VPS) is a virtual machine sold as a service by an Internet hosting service. A VPS runs its own copy of an operating system (OS), and customers may have superuser-level access to that operating system instance, so they can install almost any software that runs on that OS. or Cloud hosting. Those who use VPS or Cloud usually manage their own servers and therefore decide the use of PHPPHP PHP (PHP: Hypertext Preprocessor) is a general-purpose scripting language especially suited to web development. PHP code is usually processed on a web server by a PHP interpreter. On a web server, the result of the interpreted and executed PHP code would form the whole or part of an HTTP response. extensions, but those who use shared hosting usually do not have that option.

A few weeks ago came to the Hosting Team a request to analyze the suitability of using the Internationalization PHP extension because, although the WordPress CoreCore Core is the set of software required to run WordPress. The Core Team builds WordPress. does not need it just now, partly because it is known that it is not recommended or mandatory, development teams do not use it because it is not there, and hosters do not install it because WordPress does not use it. It’s the fish that bites its own tail.

Deciding which ApacheApache Apache is the most widely used web server software. Developed and maintained by Apache Software Foundation. Apache is an Open Source software available for free. modules, which PHP extensions, which databaseDatabase A database is an organized collection of data. Access to this data is usually provided by a "database management system" (DBMS) consisting of an integrated set of computer software that allows users to interact with one or more databases and provides access to all of the data contained in the database. Because of the close relationship between them, the term "database" is often used casually to refer to both a database and the DBMS used to manipulate it. configuration or choice of cacheCache A cache is a component that stores data so that future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation or a copy of data stored elsewhere. is not something to be taken lightly.

Why is the PHP Intl extension important?

WordPress is a global, international software, with support for a multitude of languages and with infinite combinations. Approximately half of the installations are in a language that is not the default (English) and this leads us to think about localisms, transliteration, encoding conversions, calendar operations, collation … in short, everything you have with the different languages and formats that are around the planet. And this is what the PHP Intl extension provides.

What do we as a WordPress Community gain from this extension?

Above all, we gain the possibility to use a lot of functions that can make our life easier than developers and that would improve the way we develop to improve WordPress.

Functions like collator_compare will allow us to compare Unicode text strings; with numfmt_format we will be able to format a number according to the selected locale; the normalization of characters; the formatting of messages; to know which is the first day of the week according to the locale, without needing to ask the user for it.

And not only in functionality or ease, also to improve security, with functions such as Spoofchecker that can tell you if ‘google.com’, ‘goog1e.com’ can confuse the user, or functions related to Internet domains, both to convert an IDN domain to text and text to IDN.

Yes, you may well think that WordPress already does many of these things, but in many cases it does them using hacks that could now be deprecated and used natively.

Hosting Team Recommendation

Taking into account that WordPress continues to grow, the Hosting Team has considered a good recommendation, but not an obligation, for all hostings that work with WordPress the possibility of offering this extension, by default, to all users.

Also, we open discussion to all hosters and also the Core Team and Plugins Team.

+make.wordpress.org/core/
+make.wordpress.org/plugins/
+make.wordpress.org/updates/

#core, #php, #plugins

WordCamp US 2022 Contributor Day

Still don’t know which table to join at the WordCamp US 2022 Contributor Day? Well, if you like hostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web., know a bit about technology, and would like to improve your WordPress documentation, this is the team for you!

We have several options of projects to do during the Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/..

In any case, @JavierCasares, who will be (remotely) our Hosting Team RepTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts. in this Contributor Day, will be able to help you to solve any doubt you may have.

If you want to know/learn anything different, please comment us below. We’ll reach out to you personally as well.

If you are attending and haven’t registered yet, please register now.

#agenda, #contributor-day, #wcus

WordCamp Europe 2022 Contributor Day

Still don’t know which table to join at the WordCamp Europe 2022 Contributor Day? Well, if you like hostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web., know a bit about technology, and would like to improve your WordPress documentation, this is the team for you!

We have several options of projects to do during the Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/..

In any case, @JavierCasares, who will be our Hosting Team RepTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts. in this Contributor Day, will be able to help you to solve any doubt you may have.

If you want to know/learn anything different, please comment us below. We’ll reach out to you personally as well.

Contributors Day Schedule (Thursday 2022-06-02)

9:00 – 10:00Registration and coffee/tea
10:00 – 10:30Welcome and introduction of teams and table leads
10:30 – 12:30Start contributing
10:30 – 11:00Getting Started workshop for first time contributors
12:30 – 14:00Lunch break. Lunch will be provided for
14:00 – 15:30More contributing
15:30 – 16:00Sharing results
All times are in Porto (local) time. Source: WordCamp Europe 2022

If you are attending and haven’t registered yet, please register now.

#agenda, #contributor-day, #wceu

Nominations for Hosting Team Reps 2022

This post kicks off the election process with nominations to replace the current HostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web. Team Reps. Current Team Reps are @jadonn, @amykamala, @javiercasares and @Crixu.

The Role

In the WordPress open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. project, each team has on average one or two representatives, abbreviated as reps. In the Hosting Team we usually have 2 reps for APAC-EMEA and 2 reps for EMEA-AMER.

It’s not called “team lead” for a reason. It’s an administrative role. While people elected as team reps will generally come from the pool of folks that people think of as experienced leaders, the team repTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts. role is designed to change hands regularly.

This role has a time commitment attached to it. Not a huge amount, it’s at least two hours a week. Here are the main tasks:

– Post the agenda, host the chats, and summarize them.
– Keeping an eye on the moving parts of the team to be able to report for quarterly updates.

Full details on the Team Rep role is on the Team Update site.

How the election works

Please nominate people in the comments of this post. Self-nominations are welcome. The deadline is December 1st, 2021.

Once the nomination window is closed we will open a poll for voting. It will stay open for about two weeks. The new reps will start their role on January 1st, 2022.

If you want to nominate someone in private, please reach out to n process with nominations to replace the current Hosting team reps. Current Team reps are @jadonn, @amykamala, @javiercasares and @Crixu on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

Disclaimer: if you get nominated, please don’t feel like you have to say yes. The polls will only include the names of the people that are responding positively to a nomination.  So feel free to reply with a “Thank you, but no thank you”.

If you have any questions, please feel free to ask in the comments, we will be happy to reply.

#team-reps

Hosting Team Rep Election

Hi everyone!

It’s been since December 2019 that team reps were discussed/evaluated in the hostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web. team.

After chatting about this in the hosting meeting and amongst existing team reps, the consensus is to allow folks to nominate themselves or others, and hold an election in January.

I’m hopeful this will allow some new folks to have a chance to represent the team, while allowing existing folks the opportunity to step back if they need to due to availability, or choose, to focus on other areas of contribution.

For full details on the role of team repTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts., check out this page, which has current reps for all WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ teams, along with the responsibilities. There’s also a good description on the most recent call for reps from the core team.

While team reps often come from folks who are are considered to be leaders in a particular area, this is meant as a communication role, to help facilitate team and cross-team collaboration, rather than be tied to leadership.

Are you interested in being a rep, or have anyone you’d like to nominate? Please leave a comment on this post, or DM any of the current team reps (@amykamala, @jadonn, or @mikeschroder) to do so.

Anyone who is nominated by others will be contacted to make sure that they are interested and available for the role.

+make.wordpress.org/updates

#hosting-community, #team-reps