Topic on Project:Support desk

After migrating my website from another shared hosting to another, all webpages include 404 Not Found

11
Summary by MarioSuperstar77

"changing the website's file tree from public_html/example.com/ to public_html/ solved the problem"

2001:44C8:44CD:2F1A:CD15:2954:A8D5:5EFB (talkcontribs)

A principally all core MediaWiki 1.35 website in Hebrew.

After migrating my website from another shared hosting to another, all webpages include 404 Not Found.

The migration does not include a domain change.


Things I have tried to solve the problem but failed:

  • Non-root DB username and its password as well as a DB name have been performed in LocalSettings.PHP
  • I have tried to navigate to public_html/example.com and run php update.php but I don't have such a file in the website's file tree: Could not open input file: update.php
  • I have tried to move the .htaccess file from example.com to public_html


How would you suggest to solve that problem?

2001:44C8:44CD:2F1A:CD15:2954:A8D5:5EFB (talkcontribs)

Have been performed == have been updated accordingly*

Ciencia Al Poder (talkcontribs)

Did you install mediawiki on the new hosting? The question may seem stupid, but you said there's no update.php file on the new hosting, and that means there's no mediawiki installation there...

Maybe your old hosting provided an automatic installation of MediaWiki. In the new one you may need to install it yourself. See Manual:Installation guide. I assume you already exported the database and images from the old hosting to the new one. See also Manual:Moving a wiki

2001:44C8:44CD:2F1A:CD15:2954:A8D5:5EFB (talkcontribs)

@Ciencia Al Poder I have indeed "installed" MediaWiki on the new hosting environment by extracting a zip which contains my exact web application root directory (example.com) from my previous hosting environment, on the new hosting environment --- with all its previous data; I don't have any indication that the zip containing the file tree was corrupted because generally all files are there:

  • .htaccess
  • LocalSettings.php
  • robots.txt
  • Google's search console validation file
  • The websites' logo file
  • Various other files (non directories)
  • Various directories

So yes, I have no idea why just update.php is not there in the file tree.


That said;

In my old hosting I have done a traditional MediaWiki installation; I didn't use any tool to install it.

Ciencia Al Poder (talkcontribs)

note that update.php is inside the maintenace folder and not directly on the root folder. Basically, you'll have to run php maintenance/update.php

2001:44C8:44CD:2F1A:CD15:2954:A8D5:5EFB (talkcontribs)

@Ciencia Al Poder thanks, I didn't recall that full command php maintenance/update.php

I navigated to my site dir and ran it but got:

Error: You are using an unsupported PHP version (PHP 7.2.34).

MediaWiki 1.35 needs PHP 7.3.19 or higher.

Check if you might have a newer PHP executable with a different name.

That's strange because it happened when according to Namecheap Cpanel "PHP tweaks" tool my PHP version was 7.3 and it keeps happening after I have changed it to 7.4 and double checked that it was indeed changed...


I think that this is a problem with the server environment...


Is there anything else you might kindly suggest me to check or do to finally update the database?

Ciencia Al Poder (talkcontribs)

Cpanel may change the php version used by the web server, but not the php version used to run commands from the command line. It may have several php versions available under different names (for example, php73 or similar), or you may need to specify the full path to where php is installed. Help pages on your host may indicate how to run php7.3 from your command line.

2001:44C8:44CD:2F1A:CD15:2954:A8D5:5EFB (talkcontribs)

@Ciencia Al Poder Sadly I didn't find anything like this.

There is a PHP extension named "SSH2" which I thought I could turn on but the Cpanel tool doesn't let me turn it on (the PHP manual doesn't include any explanation that I personally have understood what it even does).


Anyway,

I might have no other choice but to open a support ticket in Namechape's support system to ask them what can be done,

As most shared hosting provider support teams deal primarily with WordPress, I am afraid I might need to cancel that particular hosting plan and quickly find a new hosting provider while my webiste is off all that time and SEO damage is happening naturally (my old hosting plan already expired).

2001:44C8:42C0:D152:D412:B6F7:487B:5B86 (talkcontribs)

Hello again @Ciencia Al Poder, the staff upgraded all PHP versions on the environment globally to 7.4 and I could then run php maintenance/update.php successfully but I still have the same 404 Not Found problem.

In the following trace, please note the USER_EX?AMPLE which should have been USER_EX-AMPLE instead but includes a ? for some reason.

Trace

$ php maintenance/update.php
MediaWiki 1.35.2 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for USER_EX?AMPLE
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0
...have ipb_id field in ipblocks table.
...have ipb_expiry field in ipblocks table.
...already have interwiki table
...indexes seem up to 20031107 standards.
...have rc_type field in recentchanges table.
...index new_name_timestamp already set on recentchanges table.
...have user_real_name field in user table.
...querycache table already exists.
...objectcache table already exists.
...categorylinks table already exists.
...have pagelinks; skipping old links table updates
...il_from OK
...have rc_ip field in recentchanges table.
...index PRIMARY already set on image table.
...have rc_id field in recentchanges table.
...have rc_patrolled field in recentchanges table.
...logging table already exists.
...have user_token field in user table.
...have wl_notificationtimestamp field in watchlist table.
...watchlist talk page rows already present.
...user table does not contain user_emailauthenticationtimestamp field.
...page table already exists.
...have log_params field in logging table.
...logging table has correct log_title encoding.
...have ar_rev_id field in archive table.
...have page_len field in page table.
...revision table does not contain inverse_timestamp field.
...have rev_deleted field in revision table.
...have img_width field in image table.
...have img_metadata field in image table.
...have user_email_token field in user table.
...page_namespace is already a full int (int(11)).
...ar_namespace is already a full int (int(11)).
...rc_namespace is already a full int (int(11)).
...wl_namespace is already a full int (int(11)).
...qc_namespace is already a full int (int(11)).
...log_namespace is already a full int (int(11)).
...have img_media_type field in image table.
...already have pagelinks table.
...image table does not contain img_type field.
...already have unique user_name index.
...user_groups table exists and is in current format.
...have ss_total_pages field in site_stats table.
...user_newtalk table already exists.
...have iw_trans field in interwiki table.
...wl_notificationtimestamp is already nullable.
...index times already set on logging table.
...have ipb_range_start field in ipblocks table.
...no page_random rows needed to be set
...have user_registration field in user table.
...templatelinks table already exists
...externallinks table already exists.
...job table already exists.
...have ss_images field in site_stats table.
...langlinks table already exists.
...querycache_info table already exists.
...filearchive table already exists.
...have ipb_anon_only field in ipblocks table.
...have user_newpass_time field in user table.
...redirect table already exists.
...querycachetwo table already exists.
...have ipb_enable_autoblock field in ipblocks table.
...index pl_namespace on table pagelinks includes field pl_from.
...index tl_namespace on table templatelinks includes field tl_from.
...index il_to on table imagelinks includes field il_from.
...have rc_old_len field in recentchanges table.
...have user_editcount field in user table.
...page_restrictions table already exists.
...have log_id field in logging table.
...have rev_parent_id field in revision table.
...have pr_id field in page_restrictions table.
...have rev_len field in revision table.
...have rc_deleted field in recentchanges table.
...have log_deleted field in logging table.
...have ar_deleted field in archive table.
...have ipb_deleted field in ipblocks table.
...have fa_deleted field in filearchive table.
...have ar_len field in archive table.
...have ipb_block_email field in ipblocks table.
...index cl_sortkey on table categorylinks includes field cl_from.
...have oi_metadata field in oldimage table.
...have ar_page_id field in archive table.
...have img_sha1 field in image table.
...protected_titles table already exists.
...page_props table already exists.
...updatelog table already exists.
...category table already exists.
...category table already populated.
...have ar_parent_id field in archive table.
...have user_last_timestamp field in user_newtalk table.
...protected_titles table has correct pt_title encoding.
...have ss_active_users field in site_stats table.
...ss_active_users user count set...
...have ipb_allow_usertalk field in ipblocks table.
...change_tag table already exists.
...user_properties table already exists.
...log_search table already exists.
...l10n_cache table already exists.
...ct_rc_id key doesn't exist.
...have rd_interwiki field in redirect table.
...*_mime_minor fields are already long enough.
...iwlinks table already exists.
...index iwl_prefix_title_from already set on iwlinks table.
...have ul_value field in updatelog table.
...have iw_api field in interwiki table.
...iwl_prefix key doesn't exist.
...have cl_collation field in categorylinks table.
...categorylinks up-to-date.
...module_deps table already exists.
...ar_page_revid key doesn't exist.
...skipping index ar_revid because index ar_revid_uniq already set on archive table.
...user_last_timestamp is already nullable.
...index user_email already set on user table.
...up_property in table user_properties already modified by patch patch-up_property.sql.
...uploadstash table already exists.
...user_former_groups table already exists.
...have rev_sha1 field in revision table.
...batch conversion of user_options: nothing to migrate. done.
...user table does not contain user_options field.
...have ar_sha1 field in archive table.
...index page_redirect_namespace_len already set on page table.
...have us_chunk_inx field in uploadstash table.
...have job_timestamp field in job table.
...have ipb_parent_block_id field in ipblocks table.
...index ipb_parent_block_id already set on ipblocks table.
...category table does not contain cat_hidden field.
...have page_content_model field in page table.
...site_stats table does not contain ss_admins field.
...recentchanges table does not contain rc_moved_to_title field.
...sites table already exists.
...have fa_sha1 field in filearchive table.
...have job_token field in job table.
...have job_attempts field in job table.
...have us_props field in uploadstash table.
...ug_group in table user_groups already modified by patch patch-ug_group-length-increase-255.sql.
...ufg_group in table user_former_groups already modified by patch patch-ufg_group-length-increase-255.sql.
...index pp_propname_page already set on page_props table.
...index img_media_mime already set on image table.
...iwl_prefix_title_from index is already non-UNIQUE.
...index iwl_prefix_from_title already set on iwlinks table.
...have ar_id field in archive table.
...have el_id field in externallinks table.
...have rc_source field in recentchanges table.
...have page_links_updated field in page table.
...have user_password_expires field in user table.
...have pp_sortkey field in page_props table.
...recentchanges table does not contain rc_cur_time field.
...index wl_user_notificationtimestamp already set on watchlist table.
...have page_lang field in page table.
...have pl_from_namespace field in pagelinks table.
...have tl_from_namespace field in templatelinks table.
...have il_from_namespace field in imagelinks table.
...img_major_mime in table image already modified by patch patch-img_major_mime-chemical.sql.
...oi_major_mime in table oldimage already modified by patch patch-oi_major_mime-chemical.sql.
...fa_major_mime in table filearchive already modified by patch patch-fa_major_mime-chemical.sql.
...comment fields are up to date.
...hitcounter doesn't exist.
...site_stats table does not contain ss_total_views field.
...page table does not contain page_counter field.
...msg_resource_links doesn't exist.
...msg_resource doesn't exist.
...bot_passwords table already exists.
...have wl_id field in watchlist table.
...cl_collation key doesn't exist.
...index cl_collation_ext already set on categorylinks table.
...collations up-to-date.
...index rc_name_type_patrolled_timestamp already set on recentchanges table.
...rev_page_id index already non-unique.
...pl_namespace, tl_namespace, il_to indices are already non-UNIQUE.
...have ct_id field in change_tag table.
...rc_ip in table recentchanges already modified by patch patch-rc_ip_modify.sql.
...have el_index_60 field in externallinks table.
...ug_user_group key doesn't exist.
...have ug_expiry field in user_groups table.
...img_media_type in table image already modified by patch patch-add-3d.sql.
...ip_changes table already exists.
...index PRIMARY already set on categorylinks table.
...index PRIMARY already set on templatelinks table.
...index PRIMARY already set on pagelinks table.
...index PRIMARY already set on text table.
...index PRIMARY already set on imagelinks table.
...index PRIMARY already set on iwlinks table.
...index PRIMARY already set on langlinks table.
...index PRIMARY already set on log_search table.
...index PRIMARY already set on module_deps table.
...index PRIMARY already set on objectcache table.
...index PRIMARY already set on querycache_info table.
...index PRIMARY already set on site_stats table.
...index PRIMARY already set on user_former_groups table.
...index PRIMARY already set on user_properties table.
...comment table already exists.
...revision_comment_temp table already exists.
...have ar_comment_id field in archive table.
...have fa_description_id field in filearchive table.
...img_description field does not exist in image table, skipping modify field patch.
...have ipb_reason_id field in ipblocks table.
...have log_comment_id field in logging table.
...have oi_description_id field in oldimage table.
...have pt_reason_id field in protected_titles table.
...have rc_comment_id field in recentchanges table.
...rev_comment field does not exist in revision table, skipping modify field patch.
...have img_description_id field in image table.
...index PRIMARY already set on l10n_cache table.
...bot_passwords.bp_user is already unsigned int.
...change_tag.ct_log_id is already unsigned int.
...change_tag.ct_rev_id is already unsigned int.
...page_restrictions.pr_user is already unsigned int.
...user_newtalk.user_id is already unsigned int.
...user_properties.up_user is already unsigned int.
...slots table already exists.
...have slot_origin field in slots table.
...content table already exists.
...slot_roles table already exists.
...content_models table already exists.
...actor table already exists.
...revision_actor_temp table already exists.
...have ar_actor field in archive table.
...have ipb_by_actor field in ipblocks table.
...have img_actor field in image table.
...have oi_actor field in oldimage table.
...have fa_actor field in filearchive table.
...have rc_actor field in recentchanges table.
...have log_actor field in logging table.
...rev_text_id field does not exist in revision table, skipping modify field patch.
...table site_stats already modified by patch patch-site_stats-modify.sql.
...index rc_namespace_title_timestamp already set on recentchanges table.
...change_tag_def table already exists.
...el_index_60 in table externallinks already modified by patch patch-externallinks-el_index_60-drop-default.sql.
Running maintenance/deduplicateArchiveRevId.php...
...Update 'DeduplicateArchiveRevId' already logged as completed. Use --force to run it again.
done.
...have ct_tag_id field in change_tag table.
...index ar_revid_uniq already set on archive table.
...index log_type_action already set on logging table.
...type_action key doesn't exist.
...index PRIMARY already set on interwiki table.
...index PRIMARY already set on page_props table.
...index PRIMARY already set on protected_titles table.
...index PRIMARY already set on site_identifiers table.
...index rc_this_oldid already set on recentchanges table.
...transcache doesn't exist.
Running maintenance/populateChangeTagDef.php...
...Update 'PopulateChangeTagDef' already logged as completed. Use --force to run it again.
done.
...index change_tag_rc_tag_id already set on change_tag table.
...have ipb_sitewide field in ipblocks table.
...ipblocks_restrictions table already exists.
...change_tag table does not contain ct_tag field.
...valid_tag doesn't exist.
...tag_summary doesn't exist.
...archive table does not contain ar_comment field.
...ipblocks table does not contain ipb_reason field.
...image table does not contain img_description field.
...oldimage table does not contain oi_description field.
...filearchive table does not contain fa_description field.
...recentchanges table does not contain rc_comment field.
...logging table does not contain log_comment field.
...protected_titles table does not contain pt_reason field.
...table job already modified by patch patch-job-params-mediumblob.sql.
...ar_usertext_timestamp key doesn't exist.
...usertext_timestamp key doesn't exist.
...archive table does not contain ar_user field.
...ipblocks table does not contain ip_by field.
...img_user_timestamp key doesn't exist.
...image table does not contain img_user field.
...oldimage table does not contain oi_user field.
...filearchive table does not contain fa_user field.
...recentchanges table does not contain rc_user field.
...logging table does not contain log_user field.
...index un_user_ip already set on user_newtalk table.
...watchlist_expiry table already exists.
...page_restrictions in table page already modified by patch patch-page_restrictions-null.sql.
...index ipb_address_unique already set on ipblocks table.
...have rev_actor field in revision table.
...archive table does not contain ar_text_id field.
...lc_lang is up-to-date.
...ll_lang is up-to-date.
...site_language is up-to-date.
...index ipb_address_unique on table ipblocks has no field ipb_anon_only; added.
...ipb_address_unique index up-to-date.
...actor_name in table actor already modified by patch patch-actor-actor_name-varbinary.sql.
...site_global_key in table sites already modified by patch patch-sites-site_global_key.sql.
...iwl_prefix in table iwlinks already modified by patch patch-extend-iwlinks-iwl_prefix.sql.
...site_stats is populated...done.
...Update 'populate rev_len and ar_len' already logged as completed. Use --force to run it again.
...Update 'populate rev_sha1' already logged as completed. Use --force to run it again.
...img_sha1 column of image table already populated.
...protocol-relative URLs in externallinks table already fixed.
...fa_sha1 column of filearchive table already populated.
...*_from_namespace column of backlink tables already populated.
...Update 'FixDefaultJsonContentPages' already logged as completed. Use --force to run it again.
...Update 'cleanup empty categories' already logged as completed. Use --force to run it again.
...RFC and PMID already added to interwiki database table.
...Update 'populate pp_sortkey' already logged as completed. Use --force to run it again.
...Update 'populate ip_changes' already logged as completed. Use --force to run it again.
...externallinks table indexes up to date
Purging caches...done.

Done in 0.2 s.
2001:44C8:42C0:D152:D412:B6F7:487B:5B86 (talkcontribs)

Okay, good news; changing the website's file tree from public_html/example.com/ to public_html/ solved the problem --- the website is working now :)


I can only hope that the trace I pasted above doesn't put my website in any seucurity risk --- is it? (I ask just for general knowledge even though the username and the domain don't appear there).

Ciencia Al Poder (talkcontribs)

There's no private information presented on the log, so there should be no problem